{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "view-in-github",
        "colab_type": "text"
      },
      "source": [
        "<a href=\"https://colab.research.google.com/github/mrSaggio/mrSaggio/blob/main/resNet50.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "from google.colab import drive\n",
        "drive.mount('/content/drive')"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "i3UiEWIsqnld",
        "outputId": "aac66339-fba2-41fe-b034-7e269603fd56"
      },
      "id": "i3UiEWIsqnld",
      "execution_count": 1,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Mounted at /content/drive\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 2,
      "id": "813c4ce3",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2024-01-17T06:49:37.059722Z",
          "iopub.status.busy": "2024-01-17T06:49:37.059204Z",
          "iopub.status.idle": "2024-01-17T06:49:37.085043Z",
          "shell.execute_reply": "2024-01-17T06:49:37.083847Z"
        },
        "papermill": {
          "duration": 0.03964,
          "end_time": "2024-01-17T06:49:37.087764",
          "exception": false,
          "start_time": "2024-01-17T06:49:37.048124",
          "status": "completed"
        },
        "tags": [],
        "id": "813c4ce3",
        "outputId": "1ea54823-106d-43e9-d795-46995ca89e9a",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "['Annotations', 'JPEGImages']"
            ]
          },
          "metadata": {},
          "execution_count": 2
        }
      ],
      "source": [
        "import os\n",
        "os.listdir('/content/drive/MyDrive/list_digital')"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 7,
      "id": "4de97805",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2024-01-17T06:49:37.106645Z",
          "iopub.status.busy": "2024-01-17T06:49:37.106174Z",
          "iopub.status.idle": "2024-01-17T06:49:37.356208Z",
          "shell.execute_reply": "2024-01-17T06:49:37.354615Z"
        },
        "papermill": {
          "duration": 0.263102,
          "end_time": "2024-01-17T06:49:37.359205",
          "exception": false,
          "start_time": "2024-01-17T06:49:37.096103",
          "status": "completed"
        },
        "tags": [],
        "id": "4de97805",
        "outputId": "b9c9d318-097c-4349-c1c8-185124bed10d",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "64\n"
          ]
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "['/content/drive/MyDrive/list_digital/JPEGImages/frame_orig13456.jpg',\n",
              " '/content/drive/MyDrive/list_digital/JPEGImages/frame_orig11857.jpg',\n",
              " '/content/drive/MyDrive/list_digital/JPEGImages/frame_orig17891.jpg',\n",
              " '/content/drive/MyDrive/list_digital/JPEGImages/frame_orig19078.jpg',\n",
              " '/content/drive/MyDrive/list_digital/JPEGImages/frame_orig7621.jpg',\n",
              " '/content/drive/MyDrive/list_digital/JPEGImages/frame_orig4288.jpg',\n",
              " '/content/drive/MyDrive/list_digital/JPEGImages/frame_orig19085.jpg',\n",
              " '/content/drive/MyDrive/list_digital/JPEGImages/frame_orig18713.jpg',\n",
              " '/content/drive/MyDrive/list_digital/JPEGImages/frame_orig11504.jpg']"
            ]
          },
          "metadata": {},
          "execution_count": 7
        }
      ],
      "source": [
        "import glob\n",
        "images_path = glob.glob('/content/drive/MyDrive/list_digital/JPEGImages/*.jpg')\n",
        "print(len(images_path))\n",
        "images_path[:9]"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 8,
      "id": "47a3e127",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2024-01-17T06:49:37.380081Z",
          "iopub.status.busy": "2024-01-17T06:49:37.379629Z",
          "iopub.status.idle": "2024-01-17T06:49:37.497127Z",
          "shell.execute_reply": "2024-01-17T06:49:37.495577Z"
        },
        "papermill": {
          "duration": 0.13206,
          "end_time": "2024-01-17T06:49:37.500575",
          "exception": false,
          "start_time": "2024-01-17T06:49:37.368515",
          "status": "completed"
        },
        "tags": [],
        "id": "47a3e127",
        "outputId": "0a2d2841-5c82-474e-d6a6-9a2257698eb3",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "64\n"
          ]
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "['/content/drive/MyDrive/list_digital/Annotations/frame_orig11502.xml',\n",
              " '/content/drive/MyDrive/list_digital/Annotations/frame_orig17891.xml',\n",
              " '/content/drive/MyDrive/list_digital/Annotations/frame_orig18698.xml',\n",
              " '/content/drive/MyDrive/list_digital/Annotations/frame_orig18706.xml',\n",
              " '/content/drive/MyDrive/list_digital/Annotations/frame_orig19077.xml',\n",
              " '/content/drive/MyDrive/list_digital/Annotations/frame_orig19088.xml',\n",
              " '/content/drive/MyDrive/list_digital/Annotations/frame_orig18702.xml',\n",
              " '/content/drive/MyDrive/list_digital/Annotations/frame_orig19079.xml',\n",
              " '/content/drive/MyDrive/list_digital/Annotations/frame_orig18715.xml']"
            ]
          },
          "metadata": {},
          "execution_count": 8
        }
      ],
      "source": [
        "xmls_path = glob.glob('/content/drive/MyDrive/list_digital/Annotations/*.xml')\n",
        "print(len(xmls_path))\n",
        "xmls_path[:9]"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 9,
      "id": "b8d09342",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2024-01-17T06:49:37.521896Z",
          "iopub.status.busy": "2024-01-17T06:49:37.520878Z",
          "iopub.status.idle": "2024-01-17T06:49:37.620432Z",
          "shell.execute_reply": "2024-01-17T06:49:37.618477Z"
        },
        "papermill": {
          "duration": 0.11544,
          "end_time": "2024-01-17T06:49:37.624882",
          "exception": false,
          "start_time": "2024-01-17T06:49:37.509442",
          "status": "completed"
        },
        "tags": [],
        "id": "b8d09342",
        "outputId": "dbbe9d38-fc1e-468a-de5f-b3d858ff75f8",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(64, 64)"
            ]
          },
          "metadata": {},
          "execution_count": 9
        }
      ],
      "source": [
        "xmls_data = [p.split('/')[-1].split('.')[0] for p in xmls_path]\n",
        "images_data = [img for img in images_path if (img.split('/')[-1].split)('.jpg')[0] in xmls_data]\n",
        "\n",
        "len(images_data),len(xmls_path)\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 10,
      "id": "5d2477a9",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2024-01-17T06:49:37.649507Z",
          "iopub.status.busy": "2024-01-17T06:49:37.649009Z",
          "iopub.status.idle": "2024-01-17T06:49:37.670166Z",
          "shell.execute_reply": "2024-01-17T06:49:37.668950Z"
        },
        "papermill": {
          "duration": 0.040444,
          "end_time": "2024-01-17T06:49:37.676350",
          "exception": false,
          "start_time": "2024-01-17T06:49:37.635906",
          "status": "completed"
        },
        "tags": [],
        "id": "5d2477a9",
        "outputId": "a6585b3c-a5c4-4a03-d65b-bac8931eb2d6",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(['/content/drive/MyDrive/list_digital/Annotations/frame_orig11502.xml',\n",
              "  '/content/drive/MyDrive/list_digital/Annotations/frame_orig11504.xml',\n",
              "  '/content/drive/MyDrive/list_digital/Annotations/frame_orig11857.xml',\n",
              "  '/content/drive/MyDrive/list_digital/Annotations/frame_orig13456.xml',\n",
              "  '/content/drive/MyDrive/list_digital/Annotations/frame_orig13845.xml',\n",
              "  '/content/drive/MyDrive/list_digital/Annotations/frame_orig1694.xml',\n",
              "  '/content/drive/MyDrive/list_digital/Annotations/frame_orig17887.xml',\n",
              "  '/content/drive/MyDrive/list_digital/Annotations/frame_orig17888.xml',\n",
              "  '/content/drive/MyDrive/list_digital/Annotations/frame_orig17889.xml'],\n",
              " ['/content/drive/MyDrive/list_digital/JPEGImages/frame_orig11502.jpg',\n",
              "  '/content/drive/MyDrive/list_digital/JPEGImages/frame_orig11504.jpg',\n",
              "  '/content/drive/MyDrive/list_digital/JPEGImages/frame_orig11857.jpg',\n",
              "  '/content/drive/MyDrive/list_digital/JPEGImages/frame_orig13456.jpg',\n",
              "  '/content/drive/MyDrive/list_digital/JPEGImages/frame_orig13845.jpg',\n",
              "  '/content/drive/MyDrive/list_digital/JPEGImages/frame_orig1694.jpg',\n",
              "  '/content/drive/MyDrive/list_digital/JPEGImages/frame_orig17887.jpg',\n",
              "  '/content/drive/MyDrive/list_digital/JPEGImages/frame_orig17888.jpg',\n",
              "  '/content/drive/MyDrive/list_digital/JPEGImages/frame_orig17889.jpg'])"
            ]
          },
          "metadata": {},
          "execution_count": 10
        }
      ],
      "source": [
        "xmls_path.sort(key=lambda x: x.split(\"/\")[-1].split('.xml')[0])\n",
        "images_data.sort(key=lambda x: x.split(\"/\")[-1].split('.jpg')[0])\n",
        "xmls_path[:9],images_data[:9]"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 11,
      "id": "92071072",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2024-01-17T06:49:37.705704Z",
          "iopub.status.busy": "2024-01-17T06:49:37.704448Z",
          "iopub.status.idle": "2024-01-17T06:49:50.080881Z",
          "shell.execute_reply": "2024-01-17T06:49:50.078661Z"
        },
        "papermill": {
          "duration": 12.393961,
          "end_time": "2024-01-17T06:49:50.083834",
          "exception": false,
          "start_time": "2024-01-17T06:49:37.689873",
          "status": "completed"
        },
        "tags": [],
        "id": "92071072",
        "outputId": "05eb3a84-4d31-49f7-fbc2-4669257e402a",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "tensor([[1., 1., 1., 1., 1., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 1., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 1., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 1., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 1., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 1., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 1., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 1., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 1., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 1., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.]])\n"
          ]
        }
      ],
      "source": [
        "import xml.etree.ElementTree as ET\n",
        "import glob\n",
        "import re\n",
        "import torch\n",
        "\n",
        "def encoded_vec(xml_file_path):\n",
        "    tree = ET.parse(xml_file_path)\n",
        "    root = tree.getroot()\n",
        "\n",
        "    name_counts = {}\n",
        "    vector = torch.zeros(10, dtype=torch.float32)\n",
        "\n",
        "    for obj in root.findall('.//object'):\n",
        "        names = obj.findall('.//name')\n",
        "\n",
        "        if names:\n",
        "            for name in names:\n",
        "                digit_match = re.search(r'\\d', name.text)\n",
        "\n",
        "                if digit_match:\n",
        "                    digit = int(digit_match.group())\n",
        "                    vector[digit] = 1\n",
        "\n",
        "    return vector\n",
        "\n",
        "labels = []\n",
        "for xml_path in xmls_path:\n",
        "    label = encoded_vec(xml_path)\n",
        "    labels.append(label)\n",
        "\n",
        "labels_tensor = torch.stack(labels)\n",
        "print(labels_tensor)\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "7562083f",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2024-01-17T06:49:50.106026Z",
          "iopub.status.busy": "2024-01-17T06:49:50.104656Z",
          "iopub.status.idle": "2024-01-17T06:49:50.111058Z",
          "shell.execute_reply": "2024-01-17T06:49:50.109901Z"
        },
        "papermill": {
          "duration": 0.020658,
          "end_time": "2024-01-17T06:49:50.114231",
          "exception": false,
          "start_time": "2024-01-17T06:49:50.093573",
          "status": "completed"
        },
        "tags": [],
        "id": "7562083f",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "d4a42e93-0225-47b6-c3af-237fc38b050c"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Requirement already satisfied: torch in /usr/local/lib/python3.10/dist-packages (2.1.0+cu121)\n",
            "Requirement already satisfied: torchvision in /usr/local/lib/python3.10/dist-packages (0.16.0+cu121)\n",
            "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from torch) (3.13.1)\n",
            "Requirement already satisfied: typing-extensions in /usr/local/lib/python3.10/dist-packages (from torch) (4.9.0)\n",
            "Requirement already satisfied: sympy in /usr/local/lib/python3.10/dist-packages (from torch) (1.12)\n",
            "Requirement already satisfied: networkx in /usr/local/lib/python3.10/dist-packages (from torch) (3.2.1)\n",
            "Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/dist-packages (from torch) (3.1.3)\n",
            "Requirement already satisfied: fsspec in /usr/local/lib/python3.10/dist-packages (from torch) (2023.6.0)\n",
            "Requirement already satisfied: triton==2.1.0 in /usr/local/lib/python3.10/dist-packages (from torch) (2.1.0)\n",
            "Requirement already satisfied: numpy in /usr/local/lib/python3.10/dist-packages (from torchvision) (1.23.5)\n",
            "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from torchvision) (2.31.0)\n",
            "Requirement already satisfied: pillow!=8.3.*,>=5.3.0 in /usr/local/lib/python3.10/dist-packages (from torchvision) (9.4.0)\n",
            "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2->torch) (2.1.5)\n",
            "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests->torchvision) (3.3.2)\n",
            "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->torchvision) (3.6)\n",
            "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->torchvision) (2.0.7)\n",
            "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->torchvision) (2024.2.2)\n",
            "Requirement already satisfied: mpmath>=0.19 in /usr/local/lib/python3.10/dist-packages (from sympy->torch) (1.3.0)\n"
          ]
        }
      ],
      "source": [
        "!pip install torch torchvision"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 12,
      "id": "5b711338",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2024-01-17T06:49:50.136048Z",
          "iopub.status.busy": "2024-01-17T06:49:50.135609Z",
          "iopub.status.idle": "2024-01-17T06:49:50.845142Z",
          "shell.execute_reply": "2024-01-17T06:49:50.843600Z"
        },
        "papermill": {
          "duration": 0.725887,
          "end_time": "2024-01-17T06:49:50.850219",
          "exception": false,
          "start_time": "2024-01-17T06:49:50.124332",
          "status": "completed"
        },
        "tags": [],
        "id": "5b711338"
      },
      "outputs": [],
      "source": [
        "from torch.utils.data import Dataset, DataLoader\n",
        "from torchvision import transforms\n",
        "from PIL import Image\n",
        "\n",
        "class CustomDataset(Dataset):\n",
        "    def __init__(self, img_paths, labels, transform=None):\n",
        "        self.img_paths = img_paths\n",
        "        self.labels = labels\n",
        "        self.transform = transform\n",
        "\n",
        "    def __len__(self):\n",
        "        return len(self.img_paths)\n",
        "\n",
        "    def __getitem__(self, idx):\n",
        "        img_path = self.img_paths[idx]\n",
        "        #label = torch.tensor(self.labels[idx], dtype=torch.float32)\n",
        "        label = self.labels[idx].clone().detach().to(torch.float32)\n",
        "\n",
        "        img = Image.open(img_path)\n",
        "        if self.transform:\n",
        "            img = self.transform(img)\n",
        "\n",
        "        return img, label\n",
        "\n",
        "transform = transforms.Compose([\n",
        "    transforms.Grayscale(num_output_channels=3),\n",
        "    transforms.Resize((224, 224)),\n",
        "    transforms.ToTensor(),\n",
        "    transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])\n",
        "])\n",
        "\n",
        "custom_dataset = CustomDataset(images_data, labels_tensor, transform=transform)\n",
        "\n",
        "train_size = int(0.7 * len(custom_dataset))\n",
        "val_test_size = len(custom_dataset) - train_size\n",
        "train_dataset, remaining_dataset = torch.utils.data.random_split(custom_dataset, [train_size, val_test_size])\n",
        "\n",
        "val_size = int(0.5 * len(remaining_dataset))\n",
        "test_size = len(remaining_dataset) - val_size\n",
        "val_dataset, test_dataset = torch.utils.data.random_split(remaining_dataset, [val_size, test_size])\n",
        "\n",
        "batch_size = 128\n",
        "train_dataloader = DataLoader(train_dataset, batch_size=batch_size, shuffle=True)\n",
        "val_dataloader = DataLoader(val_dataset, batch_size=batch_size, shuffle=False)\n",
        "test_dataloader = DataLoader(test_dataset, batch_size=batch_size, shuffle=False)\n",
        "\n",
        "# for img, label in train_dataloader:\n",
        "#     # img is a batch of preprocessed images\n",
        "#     # label is a batch of labels\n",
        "#     # Your training logic goes here\n",
        "#     pass\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 13,
      "id": "223394a6",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2024-01-17T06:49:50.880256Z",
          "iopub.status.busy": "2024-01-17T06:49:50.879658Z",
          "iopub.status.idle": "2024-01-17T06:49:58.275958Z",
          "shell.execute_reply": "2024-01-17T06:49:58.271859Z"
        },
        "papermill": {
          "duration": 7.414176,
          "end_time": "2024-01-17T06:49:58.279669",
          "exception": false,
          "start_time": "2024-01-17T06:49:50.865493",
          "status": "completed"
        },
        "tags": [],
        "id": "223394a6",
        "outputId": "6e9ca1b0-6a4a-4f9a-e985-bb5529bcb8b9",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Element 0: tensor([[[[-1.8782, -1.8268, -1.6213,  ..., -1.9467, -1.9467, -1.9295],\n",
            "          [-1.8610, -1.6898, -1.4158,  ..., -1.9467, -1.9467, -1.9467],\n",
            "          [-1.7069, -1.5357, -1.3815,  ..., -1.9467, -1.9467, -1.9638],\n",
            "          ...,\n",
            "          [-1.5014, -1.4672, -1.4329,  ..., -1.4672, -1.4329, -1.7069],\n",
            "          [-1.5014, -1.4843, -1.4500,  ..., -1.4672, -1.4500, -1.6727],\n",
            "          [-1.4672, -1.4843, -1.4329,  ..., -1.5014, -1.4158, -1.4158]],\n",
            "\n",
            "         [[-1.7906, -1.7381, -1.5280,  ..., -1.8606, -1.8606, -1.8431],\n",
            "          [-1.7731, -1.5980, -1.3179,  ..., -1.8606, -1.8606, -1.8606],\n",
            "          [-1.6155, -1.4405, -1.2829,  ..., -1.8606, -1.8606, -1.8782],\n",
            "          ...,\n",
            "          [-1.4055, -1.3704, -1.3354,  ..., -1.3704, -1.3354, -1.6155],\n",
            "          [-1.4055, -1.3880, -1.3529,  ..., -1.3704, -1.3529, -1.5805],\n",
            "          [-1.3704, -1.3880, -1.3354,  ..., -1.4055, -1.3179, -1.3179]],\n",
            "\n",
            "         [[-1.5604, -1.5081, -1.2990,  ..., -1.6302, -1.6302, -1.6127],\n",
            "          [-1.5430, -1.3687, -1.0898,  ..., -1.6302, -1.6302, -1.6302],\n",
            "          [-1.3861, -1.2119, -1.0550,  ..., -1.6302, -1.6302, -1.6476],\n",
            "          ...,\n",
            "          [-1.1770, -1.1421, -1.1073,  ..., -1.1421, -1.1073, -1.3861],\n",
            "          [-1.1770, -1.1596, -1.1247,  ..., -1.1421, -1.1247, -1.3513],\n",
            "          [-1.1421, -1.1596, -1.1073,  ..., -1.1770, -1.0898, -1.0898]]],\n",
            "\n",
            "\n",
            "        [[[-1.8610, -1.8268, -1.6384,  ..., -1.9467, -1.9638, -1.9467],\n",
            "          [-1.8439, -1.6727, -1.4329,  ..., -1.9467, -1.9638, -1.9467],\n",
            "          [-1.6898, -1.5185, -1.3815,  ..., -1.9467, -1.9467, -1.9638],\n",
            "          ...,\n",
            "          [-1.4843, -1.4672, -1.4329,  ..., -1.4672, -1.4329, -1.7069],\n",
            "          [-1.5014, -1.4843, -1.4500,  ..., -1.4843, -1.4500, -1.6555],\n",
            "          [-1.4843, -1.4843, -1.4329,  ..., -1.5014, -1.4158, -1.3987]],\n",
            "\n",
            "         [[-1.7731, -1.7381, -1.5455,  ..., -1.8606, -1.8782, -1.8606],\n",
            "          [-1.7556, -1.5805, -1.3354,  ..., -1.8606, -1.8782, -1.8606],\n",
            "          [-1.5980, -1.4230, -1.2829,  ..., -1.8606, -1.8606, -1.8782],\n",
            "          ...,\n",
            "          [-1.3880, -1.3704, -1.3354,  ..., -1.3704, -1.3354, -1.6155],\n",
            "          [-1.4055, -1.3880, -1.3529,  ..., -1.3880, -1.3529, -1.5630],\n",
            "          [-1.3880, -1.3880, -1.3354,  ..., -1.4055, -1.3179, -1.3004]],\n",
            "\n",
            "         [[-1.5430, -1.5081, -1.3164,  ..., -1.6302, -1.6476, -1.6302],\n",
            "          [-1.5256, -1.3513, -1.1073,  ..., -1.6302, -1.6476, -1.6302],\n",
            "          [-1.3687, -1.1944, -1.0550,  ..., -1.6302, -1.6302, -1.6476],\n",
            "          ...,\n",
            "          [-1.1596, -1.1421, -1.1073,  ..., -1.1421, -1.1073, -1.3861],\n",
            "          [-1.1770, -1.1596, -1.1247,  ..., -1.1596, -1.1247, -1.3339],\n",
            "          [-1.1596, -1.1596, -1.1073,  ..., -1.1770, -1.0898, -1.0724]]],\n",
            "\n",
            "\n",
            "        [[[-1.8953, -1.8782, -1.6898,  ..., -1.8268, -1.8439, -1.7925],\n",
            "          [-1.8782, -1.7412, -1.5014,  ..., -1.8268, -1.8610, -1.8097],\n",
            "          [-1.7583, -1.5870, -1.4672,  ..., -1.8268, -1.8782, -1.8439],\n",
            "          ...,\n",
            "          [-1.5699, -1.5699, -1.5357,  ..., -1.6042, -1.5699, -1.7754],\n",
            "          [-1.5870, -1.5699, -1.5699,  ..., -1.5870, -1.5870, -1.7412],\n",
            "          [-1.5870, -1.5699, -1.5528,  ..., -1.6042, -1.5357, -1.5357]],\n",
            "\n",
            "         [[-1.8081, -1.7906, -1.5980,  ..., -1.7381, -1.7556, -1.7031],\n",
            "          [-1.7906, -1.6506, -1.4055,  ..., -1.7381, -1.7731, -1.7206],\n",
            "          [-1.6681, -1.4930, -1.3704,  ..., -1.7381, -1.7906, -1.7556],\n",
            "          ...,\n",
            "          [-1.4755, -1.4755, -1.4405,  ..., -1.5105, -1.4755, -1.6856],\n",
            "          [-1.4930, -1.4755, -1.4755,  ..., -1.4930, -1.4930, -1.6506],\n",
            "          [-1.4930, -1.4755, -1.4580,  ..., -1.5105, -1.4405, -1.4405]],\n",
            "\n",
            "         [[-1.5779, -1.5604, -1.3687,  ..., -1.5081, -1.5256, -1.4733],\n",
            "          [-1.5604, -1.4210, -1.1770,  ..., -1.5081, -1.5430, -1.4907],\n",
            "          [-1.4384, -1.2641, -1.1421,  ..., -1.5081, -1.5604, -1.5256],\n",
            "          ...,\n",
            "          [-1.2467, -1.2467, -1.2119,  ..., -1.2816, -1.2467, -1.4559],\n",
            "          [-1.2641, -1.2467, -1.2467,  ..., -1.2641, -1.2641, -1.4210],\n",
            "          [-1.2641, -1.2467, -1.2293,  ..., -1.2816, -1.2119, -1.2119]]],\n",
            "\n",
            "\n",
            "        ...,\n",
            "\n",
            "\n",
            "        [[[-1.8953, -1.8268, -1.5699,  ..., -1.8439, -1.8097, -1.7240],\n",
            "          [-1.8439, -1.6384, -1.4672,  ..., -1.8268, -1.8268, -1.7583],\n",
            "          [-1.7583, -1.5699, -1.5185,  ..., -1.8097, -1.8439, -1.7754],\n",
            "          ...,\n",
            "          [-1.5870, -1.5870, -1.5185,  ..., -1.5699, -1.5699, -1.7925],\n",
            "          [-1.5870, -1.5870, -1.5014,  ..., -1.5699, -1.5870, -1.8097],\n",
            "          [-1.6042, -1.5699, -1.5185,  ..., -1.5870, -1.5870, -1.6555]],\n",
            "\n",
            "         [[-1.8081, -1.7381, -1.4755,  ..., -1.7556, -1.7206, -1.6331],\n",
            "          [-1.7556, -1.5455, -1.3704,  ..., -1.7381, -1.7381, -1.6681],\n",
            "          [-1.6681, -1.4755, -1.4230,  ..., -1.7206, -1.7556, -1.6856],\n",
            "          ...,\n",
            "          [-1.4930, -1.4930, -1.4230,  ..., -1.4755, -1.4755, -1.7031],\n",
            "          [-1.4930, -1.4930, -1.4055,  ..., -1.4755, -1.4930, -1.7206],\n",
            "          [-1.5105, -1.4755, -1.4230,  ..., -1.4930, -1.4930, -1.5630]],\n",
            "\n",
            "         [[-1.5779, -1.5081, -1.2467,  ..., -1.5256, -1.4907, -1.4036],\n",
            "          [-1.5256, -1.3164, -1.1421,  ..., -1.5081, -1.5081, -1.4384],\n",
            "          [-1.4384, -1.2467, -1.1944,  ..., -1.4907, -1.5256, -1.4559],\n",
            "          ...,\n",
            "          [-1.2641, -1.2641, -1.1944,  ..., -1.2467, -1.2467, -1.4733],\n",
            "          [-1.2641, -1.2641, -1.1770,  ..., -1.2467, -1.2641, -1.4907],\n",
            "          [-1.2816, -1.2467, -1.1944,  ..., -1.2641, -1.2641, -1.3339]]],\n",
            "\n",
            "\n",
            "        [[[-1.8953, -1.8439, -1.6384,  ..., -1.9467, -1.9467, -1.9467],\n",
            "          [-1.8439, -1.7069, -1.4158,  ..., -1.9467, -1.9467, -1.9467],\n",
            "          [-1.7240, -1.5357, -1.3815,  ..., -1.9295, -1.9467, -1.9467],\n",
            "          ...,\n",
            "          [-1.4843, -1.4843, -1.4329,  ..., -1.5014, -1.4843, -1.7240],\n",
            "          [-1.5014, -1.5014, -1.4672,  ..., -1.5014, -1.4843, -1.6727],\n",
            "          [-1.5014, -1.4843, -1.4500,  ..., -1.5185, -1.4672, -1.4500]],\n",
            "\n",
            "         [[-1.8081, -1.7556, -1.5455,  ..., -1.8606, -1.8606, -1.8606],\n",
            "          [-1.7556, -1.6155, -1.3179,  ..., -1.8606, -1.8606, -1.8606],\n",
            "          [-1.6331, -1.4405, -1.2829,  ..., -1.8431, -1.8606, -1.8606],\n",
            "          ...,\n",
            "          [-1.3880, -1.3880, -1.3354,  ..., -1.4055, -1.3880, -1.6331],\n",
            "          [-1.4055, -1.4055, -1.3704,  ..., -1.4055, -1.3880, -1.5805],\n",
            "          [-1.4055, -1.3880, -1.3529,  ..., -1.4230, -1.3704, -1.3529]],\n",
            "\n",
            "         [[-1.5779, -1.5256, -1.3164,  ..., -1.6302, -1.6302, -1.6302],\n",
            "          [-1.5256, -1.3861, -1.0898,  ..., -1.6302, -1.6302, -1.6302],\n",
            "          [-1.4036, -1.2119, -1.0550,  ..., -1.6127, -1.6302, -1.6302],\n",
            "          ...,\n",
            "          [-1.1596, -1.1596, -1.1073,  ..., -1.1770, -1.1596, -1.4036],\n",
            "          [-1.1770, -1.1770, -1.1421,  ..., -1.1770, -1.1596, -1.3513],\n",
            "          [-1.1770, -1.1596, -1.1247,  ..., -1.1944, -1.1421, -1.1247]]],\n",
            "\n",
            "\n",
            "        [[[-1.8953, -1.8097, -1.5870,  ..., -1.8439, -1.8268, -1.7583],\n",
            "          [-1.8268, -1.6213, -1.4843,  ..., -1.8439, -1.8439, -1.7925],\n",
            "          [-1.7583, -1.5528, -1.5014,  ..., -1.8439, -1.8610, -1.8268],\n",
            "          ...,\n",
            "          [-1.5870, -1.5870, -1.5185,  ..., -1.5699, -1.5528, -1.7925],\n",
            "          [-1.5870, -1.5870, -1.5014,  ..., -1.5528, -1.5528, -1.7925],\n",
            "          [-1.6042, -1.5699, -1.5185,  ..., -1.5699, -1.5528, -1.6555]],\n",
            "\n",
            "         [[-1.8081, -1.7206, -1.4930,  ..., -1.7556, -1.7381, -1.6681],\n",
            "          [-1.7381, -1.5280, -1.3880,  ..., -1.7556, -1.7556, -1.7031],\n",
            "          [-1.6681, -1.4580, -1.4055,  ..., -1.7556, -1.7731, -1.7381],\n",
            "          ...,\n",
            "          [-1.4930, -1.4930, -1.4230,  ..., -1.4755, -1.4580, -1.7031],\n",
            "          [-1.4930, -1.4930, -1.4055,  ..., -1.4580, -1.4580, -1.7031],\n",
            "          [-1.5105, -1.4755, -1.4230,  ..., -1.4755, -1.4580, -1.5630]],\n",
            "\n",
            "         [[-1.5779, -1.4907, -1.2641,  ..., -1.5256, -1.5081, -1.4384],\n",
            "          [-1.5081, -1.2990, -1.1596,  ..., -1.5256, -1.5256, -1.4733],\n",
            "          [-1.4384, -1.2293, -1.1770,  ..., -1.5256, -1.5430, -1.5081],\n",
            "          ...,\n",
            "          [-1.2641, -1.2641, -1.1944,  ..., -1.2467, -1.2293, -1.4733],\n",
            "          [-1.2641, -1.2641, -1.1770,  ..., -1.2293, -1.2293, -1.4733],\n",
            "          [-1.2816, -1.2467, -1.1944,  ..., -1.2467, -1.2293, -1.3339]]]])\n",
            "Element 1: tensor([[1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 1., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 1., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 1., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 1., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 1., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 1., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 1., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 1., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 1., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 1., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.],\n",
            "        [1., 1., 1., 1., 0., 1., 1., 1., 0., 1.]])\n"
          ]
        }
      ],
      "source": [
        "first_batch = next(iter(train_dataloader))\n",
        "\n",
        "#print(f\"Sample:\\n{batch['sample']}\")\n",
        "#print(f\"Target:\\n{batch['target']}\")\n",
        "\n",
        "for index, value in enumerate(first_batch):\n",
        "    print(f\"Element {index}: {value}\")\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 14,
      "id": "83af4e01",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2024-01-17T06:49:58.301083Z",
          "iopub.status.busy": "2024-01-17T06:49:58.300180Z",
          "iopub.status.idle": "2024-01-17T06:49:58.310226Z",
          "shell.execute_reply": "2024-01-17T06:49:58.308448Z"
        },
        "papermill": {
          "duration": 0.024056,
          "end_time": "2024-01-17T06:49:58.313225",
          "exception": false,
          "start_time": "2024-01-17T06:49:58.289169",
          "status": "completed"
        },
        "tags": [],
        "id": "83af4e01",
        "outputId": "81bc18b4-be38-46ad-cc40-20ecc76546ac",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "torch.Size([44, 3, 224, 224])"
            ]
          },
          "metadata": {},
          "execution_count": 14
        }
      ],
      "source": [
        "first_batch[0].shape"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 15,
      "id": "d3ef2b3d",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2024-01-17T06:49:58.336096Z",
          "iopub.status.busy": "2024-01-17T06:49:58.335612Z",
          "iopub.status.idle": "2024-01-17T06:49:59.629833Z",
          "shell.execute_reply": "2024-01-17T06:49:59.628270Z"
        },
        "papermill": {
          "duration": 1.309869,
          "end_time": "2024-01-17T06:49:59.633024",
          "exception": false,
          "start_time": "2024-01-17T06:49:58.323155",
          "status": "completed"
        },
        "tags": [],
        "id": "d3ef2b3d",
        "outputId": "a53feb7d-3249-40e8-d1ee-528937823be5",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "/usr/local/lib/python3.10/dist-packages/torchvision/models/_utils.py:208: UserWarning: The parameter 'pretrained' is deprecated since 0.13 and may be removed in the future, please use 'weights' instead.\n",
            "  warnings.warn(\n",
            "/usr/local/lib/python3.10/dist-packages/torchvision/models/_utils.py:223: UserWarning: Arguments other than a weight enum or `None` for 'weights' are deprecated since 0.13 and may be removed in the future. The current behavior is equivalent to passing `weights=ResNet50_Weights.IMAGENET1K_V1`. You can also use `weights=ResNet50_Weights.DEFAULT` to get the most up-to-date weights.\n",
            "  warnings.warn(msg)\n",
            "Downloading: \"https://download.pytorch.org/models/resnet50-0676ba61.pth\" to /root/.cache/torch/hub/checkpoints/resnet50-0676ba61.pth\n",
            "100%|██████████| 97.8M/97.8M [00:00<00:00, 121MB/s]\n"
          ]
        }
      ],
      "source": [
        "import torch\n",
        "import torchvision.models as models\n",
        "import torch.nn as nn\n",
        "\n",
        "pretrained_model = models.resnet50(pretrained=True)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 16,
      "id": "d7b8b0a0",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2024-01-17T06:49:59.661218Z",
          "iopub.status.busy": "2024-01-17T06:49:59.660687Z",
          "iopub.status.idle": "2024-01-17T06:49:59.673878Z",
          "shell.execute_reply": "2024-01-17T06:49:59.670670Z"
        },
        "papermill": {
          "duration": 0.031715,
          "end_time": "2024-01-17T06:49:59.677338",
          "exception": false,
          "start_time": "2024-01-17T06:49:59.645623",
          "status": "completed"
        },
        "tags": [],
        "id": "d7b8b0a0",
        "outputId": "8d7574c6-b288-4b4d-e674-75ba12f3ccc0",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "ResNet(\n",
            "  (conv1): Conv2d(3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False)\n",
            "  (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "  (relu): ReLU(inplace=True)\n",
            "  (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n",
            "  (layer1): Sequential(\n",
            "    (0): Bottleneck(\n",
            "      (conv1): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "      (downsample): Sequential(\n",
            "        (0): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "        (1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      )\n",
            "    )\n",
            "    (1): Bottleneck(\n",
            "      (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "    )\n",
            "    (2): Bottleneck(\n",
            "      (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "    )\n",
            "  )\n",
            "  (layer2): Sequential(\n",
            "    (0): Bottleneck(\n",
            "      (conv1): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "      (downsample): Sequential(\n",
            "        (0): Conv2d(256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
            "        (1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      )\n",
            "    )\n",
            "    (1): Bottleneck(\n",
            "      (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "    )\n",
            "    (2): Bottleneck(\n",
            "      (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "    )\n",
            "    (3): Bottleneck(\n",
            "      (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "    )\n",
            "  )\n",
            "  (layer3): Sequential(\n",
            "    (0): Bottleneck(\n",
            "      (conv1): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "      (downsample): Sequential(\n",
            "        (0): Conv2d(512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
            "        (1): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      )\n",
            "    )\n",
            "    (1): Bottleneck(\n",
            "      (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "    )\n",
            "    (2): Bottleneck(\n",
            "      (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "    )\n",
            "    (3): Bottleneck(\n",
            "      (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "    )\n",
            "    (4): Bottleneck(\n",
            "      (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "    )\n",
            "    (5): Bottleneck(\n",
            "      (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "    )\n",
            "  )\n",
            "  (layer4): Sequential(\n",
            "    (0): Bottleneck(\n",
            "      (conv1): Conv2d(1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "      (downsample): Sequential(\n",
            "        (0): Conv2d(1024, 2048, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
            "        (1): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      )\n",
            "    )\n",
            "    (1): Bottleneck(\n",
            "      (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "    )\n",
            "    (2): Bottleneck(\n",
            "      (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "    )\n",
            "  )\n",
            "  (avgpool): AdaptiveAvgPool2d(output_size=(1, 1))\n",
            "  (fc): Linear(in_features=2048, out_features=1000, bias=True)\n",
            ")\n"
          ]
        }
      ],
      "source": [
        "print(pretrained_model)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 17,
      "id": "57a4f3ec",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2024-01-17T06:49:59.701882Z",
          "iopub.status.busy": "2024-01-17T06:49:59.701396Z",
          "iopub.status.idle": "2024-01-17T06:49:59.721714Z",
          "shell.execute_reply": "2024-01-17T06:49:59.718145Z"
        },
        "papermill": {
          "duration": 0.036367,
          "end_time": "2024-01-17T06:49:59.724960",
          "exception": false,
          "start_time": "2024-01-17T06:49:59.688593",
          "status": "completed"
        },
        "tags": [],
        "id": "57a4f3ec",
        "outputId": "63e675c6-8952-416e-8357-15c8b94c112e",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "ResNet(\n",
            "  (conv1): Conv2d(3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False)\n",
            "  (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "  (relu): ReLU(inplace=True)\n",
            "  (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n",
            "  (layer1): Sequential(\n",
            "    (0): Bottleneck(\n",
            "      (conv1): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "      (downsample): Sequential(\n",
            "        (0): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "        (1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      )\n",
            "    )\n",
            "    (1): Bottleneck(\n",
            "      (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "    )\n",
            "    (2): Bottleneck(\n",
            "      (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "    )\n",
            "  )\n",
            "  (layer2): Sequential(\n",
            "    (0): Bottleneck(\n",
            "      (conv1): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "      (downsample): Sequential(\n",
            "        (0): Conv2d(256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
            "        (1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      )\n",
            "    )\n",
            "    (1): Bottleneck(\n",
            "      (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "    )\n",
            "    (2): Bottleneck(\n",
            "      (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "    )\n",
            "    (3): Bottleneck(\n",
            "      (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "    )\n",
            "  )\n",
            "  (layer3): Sequential(\n",
            "    (0): Bottleneck(\n",
            "      (conv1): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "      (downsample): Sequential(\n",
            "        (0): Conv2d(512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
            "        (1): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      )\n",
            "    )\n",
            "    (1): Bottleneck(\n",
            "      (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "    )\n",
            "    (2): Bottleneck(\n",
            "      (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "    )\n",
            "    (3): Bottleneck(\n",
            "      (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "    )\n",
            "    (4): Bottleneck(\n",
            "      (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "    )\n",
            "    (5): Bottleneck(\n",
            "      (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "    )\n",
            "  )\n",
            "  (layer4): Sequential(\n",
            "    (0): Bottleneck(\n",
            "      (conv1): Conv2d(1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "      (downsample): Sequential(\n",
            "        (0): Conv2d(1024, 2048, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
            "        (1): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      )\n",
            "    )\n",
            "    (1): Bottleneck(\n",
            "      (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "    )\n",
            "    (2): Bottleneck(\n",
            "      (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
            "      (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "    )\n",
            "  )\n",
            "  (avgpool): AdaptiveAvgPool2d(output_size=(1, 1))\n",
            "  (fc): Sequential(\n",
            "    (0): Linear(in_features=2048, out_features=256, bias=True)\n",
            "    (1): ReLU()\n",
            "    (2): Dropout(p=0.5, inplace=False)\n",
            "    (3): Linear(in_features=256, out_features=10, bias=True)\n",
            "    (4): Sigmoid()\n",
            "  )\n",
            ")\n"
          ]
        }
      ],
      "source": [
        "#number_features = pretrained_model.fc.in_features\n",
        "num_classes = 10\n",
        "pretrained_model.fc = nn.Sequential(\n",
        "    nn.Linear(2048, 256),\n",
        "    nn.ReLU(),\n",
        "    nn.Dropout(0.5),\n",
        "    nn.Linear(256, num_classes),\n",
        "    #nn.ModuleList([nn.Sigmoid() for _ in range(10)])\n",
        "    nn.Sigmoid()\n",
        "    #nn.LogSoftmax(dim=1)\n",
        ")\n",
        "print(pretrained_model)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 18,
      "id": "efeb3123",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2024-01-17T06:49:59.750201Z",
          "iopub.status.busy": "2024-01-17T06:49:59.749677Z",
          "iopub.status.idle": "2024-01-17T06:49:59.765884Z",
          "shell.execute_reply": "2024-01-17T06:49:59.764414Z"
        },
        "papermill": {
          "duration": 0.032741,
          "end_time": "2024-01-17T06:49:59.769488",
          "exception": false,
          "start_time": "2024-01-17T06:49:59.736747",
          "status": "completed"
        },
        "tags": [],
        "id": "efeb3123"
      },
      "outputs": [],
      "source": [
        "import torch.optim as optim\n",
        "#Loss = nn.CrossEntropyLoss()\n",
        "Loss = nn.BCELoss()\n",
        "#optimizer = optim.SGD(pretrained_model.parameters(), lr=0.01)\n",
        "optimizer = optim.SGD(pretrained_model.parameters(), lr=0.01,  momentum=0.9)\n",
        "#scheduler = optim.lr_scheduler.MultiStepLR(optimizer, milestones=[10, 15], gamma=0.01)\n",
        "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n",
        "pretrained_model = pretrained_model.to(device)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 19,
      "id": "2ecf08df",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2024-01-17T06:49:59.796688Z",
          "iopub.status.busy": "2024-01-17T06:49:59.796164Z",
          "iopub.status.idle": "2024-01-17T06:50:01.651952Z",
          "shell.execute_reply": "2024-01-17T06:50:01.650316Z"
        },
        "papermill": {
          "duration": 1.873644,
          "end_time": "2024-01-17T06:50:01.656075",
          "exception": false,
          "start_time": "2024-01-17T06:49:59.782431",
          "status": "completed"
        },
        "tags": [],
        "id": "2ecf08df"
      },
      "outputs": [],
      "source": [
        "from sklearn.metrics import precision_score, recall_score, f1_score, accuracy_score\n",
        "import numpy as np\n",
        "def test(model, loader):\n",
        "    loss_log, acc_log, prec_log, recall_log, f1_log = [], [], [], [], []\n",
        "\n",
        "    model.eval()\n",
        "\n",
        "    with torch.no_grad():\n",
        "        for data, target in loader:\n",
        "            inputs, labels = data.to(device), target.to(device)\n",
        "\n",
        "            outputs = model(inputs)\n",
        "            loss = Loss(outputs, labels)\n",
        "            outputs = [[1 if val > 0.5 else 0 for val in inner_list] for inner_list in outputs]\n",
        "            outputs = torch.tensor(outputs).float()\n",
        "\n",
        "            accuracy = accuracy_score(y_true = labels.cpu().detach().numpy(), y_pred = outputs.cpu().detach().numpy(), normalize = True)\n",
        "            precision = precision_score(y_true = labels.cpu().detach().numpy(), y_pred = outputs.cpu().detach().numpy(), average = 'samples')\n",
        "            recall = recall_score(y_true = labels.cpu().detach().numpy(), y_pred = outputs.cpu().detach().numpy(), average = 'samples')\n",
        "            f1 = f1_score(y_true = labels.cpu().detach().numpy(), y_pred = outputs.cpu().detach().numpy(), average = 'samples')\n",
        "\n",
        "            loss_log.append(loss.item())\n",
        "            prec_log.append(precision.item())\n",
        "            acc_log.append(accuracy.item())\n",
        "            recall_log.append(recall.item())\n",
        "            f1_log.append(f1.item())\n",
        "\n",
        "    return np.mean(loss_log), np.mean(prec_log),np.mean(acc_log), np.mean(recall_log), np.mean(f1_log)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 20,
      "id": "11911aec",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2024-01-17T06:50:01.682500Z",
          "iopub.status.busy": "2024-01-17T06:50:01.681740Z",
          "iopub.status.idle": "2024-01-17T06:50:01.696344Z",
          "shell.execute_reply": "2024-01-17T06:50:01.695192Z"
        },
        "papermill": {
          "duration": 0.031178,
          "end_time": "2024-01-17T06:50:01.699194",
          "exception": false,
          "start_time": "2024-01-17T06:50:01.668016",
          "status": "completed"
        },
        "tags": [],
        "id": "11911aec"
      },
      "outputs": [],
      "source": [
        "def train_epoch(model, optimizer, train_loader):\n",
        "    loss_log, acc_log, prec_log, recall_log, f1_log = [], [], [], [], []\n",
        "\n",
        "    model.train()\n",
        "\n",
        "    for data, target in train_loader:\n",
        "        inputs, labels = data.to(device), target.to(device)\n",
        "\n",
        "        optimizer.zero_grad()\n",
        "\n",
        "        outputs = model(inputs)\n",
        "        loss = Loss(outputs, labels)\n",
        "        outputs = [[1 if val > 0.5 else 0 for val in inner_list] for inner_list in outputs]\n",
        "        outputs = torch.tensor(outputs).float()\n",
        "        #print(f\"Outputs {outputs}\")\n",
        "        #print(f\"Labels {labels}\")\n",
        "\n",
        "        #precision, recall, f1, accuracy = calculate_metrics(outputs, labels)\n",
        "\n",
        "        accuracy = accuracy_score(y_true = labels.cpu().detach().numpy(), y_pred = outputs.cpu().detach().numpy(), normalize = True)\n",
        "        precision = precision_score(y_true = labels.cpu().detach().numpy(), y_pred = outputs.cpu().detach().numpy(), average = 'samples')\n",
        "        recall = recall_score(y_true = labels.cpu().detach().numpy(), y_pred = outputs.cpu().detach().numpy(), average = 'samples')\n",
        "        f1 = f1_score(y_true = labels.cpu().detach().numpy(), y_pred = outputs.cpu().detach().numpy(), average = 'samples')\n",
        "\n",
        "        loss.backward()\n",
        "        optimizer.step()\n",
        "\n",
        "        loss_log.append(loss.item())\n",
        "        acc_log.append(accuracy.item())\n",
        "        prec_log.append(precision.item())\n",
        "        recall_log.append(recall.item())\n",
        "        f1_log.append(f1.item())\n",
        "\n",
        "    return loss_log, acc_log, prec_log, recall_log, f1_log\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 21,
      "id": "a9831651",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2024-01-17T06:50:01.725786Z",
          "iopub.status.busy": "2024-01-17T06:50:01.724855Z",
          "iopub.status.idle": "2024-01-17T06:50:01.737501Z",
          "shell.execute_reply": "2024-01-17T06:50:01.735985Z"
        },
        "papermill": {
          "duration": 0.029915,
          "end_time": "2024-01-17T06:50:01.740880",
          "exception": false,
          "start_time": "2024-01-17T06:50:01.710965",
          "status": "completed"
        },
        "tags": [],
        "id": "a9831651"
      },
      "outputs": [],
      "source": [
        "def train(model, optimizer, n_epochs, train_loader, val_loader, scheduler=None):\n",
        "    train_loss_log, train_acc_log, train_prec_log, train_recall_log, train_f1_log = [], [], [], [], []\n",
        "    val_loss_log, val_acc_log, val_prec_log, val_recall_log, val_f1_log = [], [], [], [], []\n",
        "\n",
        "    for epoch in range(n_epochs):\n",
        "        train_loss, train_acc, train_prec, train_recall, train_f1 = train_epoch(model, optimizer, train_loader)\n",
        "        val_loss, val_acc, val_prec, val_recall, val_f1 = test(model, val_loader)\n",
        "\n",
        "        train_loss_log.append(np.mean(train_loss))\n",
        "        train_acc_log.append(np.mean(train_acc))\n",
        "        train_prec_log.append(np.mean(train_prec))\n",
        "        train_recall_log.append(np.mean(train_recall))\n",
        "        train_f1_log.append(np.mean(train_f1))\n",
        "\n",
        "        val_loss_log.append(val_loss)\n",
        "        val_acc_log.append(val_acc)\n",
        "        val_prec_log.append(val_prec)\n",
        "        val_recall_log.append(val_recall)\n",
        "        val_f1_log.append(val_f1)\n",
        "\n",
        "        print(f\"Epoch {epoch}\")\n",
        "        print(f\" Train loss: {np.mean(train_loss)}, Train accuracy: {np.mean(train_acc)}, Train precision: {np.mean(train_prec)}, Train recall: {np.mean(train_recall)}, Train F1: {np.mean(train_f1)}\")\n",
        "        print(f\" Validation loss: {val_loss}, Validation accuracy: {val_acc}, Validation precision: {val_prec}, Validation recall: {val_recall}, Validation F1: {val_f1}\\n\")\n",
        "\n",
        "        if scheduler is not None:\n",
        "            scheduler.step()\n",
        "\n",
        "    return train_loss_log, train_acc_log, train_prec_log, train_recall_log, train_f1_log, val_loss_log, val_acc_log, val_prec_log, val_recall_log, val_f1_log\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 22,
      "id": "4697d01e",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2024-01-17T06:50:01.767356Z",
          "iopub.status.busy": "2024-01-17T06:50:01.766918Z",
          "iopub.status.idle": "2024-01-17T14:30:19.953928Z",
          "shell.execute_reply": "2024-01-17T14:30:19.952587Z"
        },
        "papermill": {
          "duration": 27618.261052,
          "end_time": "2024-01-17T14:30:20.013710",
          "exception": false,
          "start_time": "2024-01-17T06:50:01.752658",
          "status": "completed"
        },
        "tags": [],
        "id": "4697d01e",
        "outputId": "c55e3aed-a850-4e05-a276-3df366f28fdc",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Epoch 0\n",
            " Train loss: 0.6959754228591919, Train accuracy: 0.0, Train precision: 0.7822510822510822, Train recall: 0.5189393939393938, Train F1: 0.6120949794412363\n",
            " Validation loss: 0.6666590571403503, Validation accuracy: 0.8678571428571429, Validation precision: 0.0, Validation recall: 0.825, Validation F1: 0.845\n",
            "\n",
            "Epoch 1\n",
            " Train loss: 0.6752739548683167, Train accuracy: 0.0, Train precision: 0.853896103896104, Train recall: 0.6212121212121212, Train F1: 0.7098939607629448\n",
            " Validation loss: 0.641834557056427, Validation accuracy: 0.875, Validation precision: 0.0, Validation recall: 0.875, Validation F1: 0.875\n",
            "\n",
            "Epoch 2\n",
            " Train loss: 0.6438794136047363, Train accuracy: 0.09090909090909091, Train precision: 0.9019209956709957, Train recall: 0.8030303030303031, Train F1: 0.8428082946465298\n",
            " Validation loss: 0.6082441806793213, Validation accuracy: 0.8763888888888889, Validation precision: 0.0, Validation recall: 0.8875, Validation F1: 0.8816176470588235\n",
            "\n",
            "Epoch 3\n",
            " Train loss: 0.6089092493057251, Train accuracy: 0.18181818181818182, Train precision: 0.9258658008658007, Train recall: 0.9223484848484849, Train F1: 0.9211086707410235\n",
            " Validation loss: 0.5672487020492554, Validation accuracy: 0.888888888888889, Validation precision: 0.0, Validation recall: 1.0, Validation F1: 0.9411764705882353\n",
            "\n",
            "Epoch 4\n",
            " Train loss: 0.5614125728607178, Train accuracy: 0.5454545454545454, Train precision: 0.9589646464646464, Train recall: 0.97885101010101, Train F1: 0.9670677361853831\n",
            " Validation loss: 0.5184189677238464, Validation accuracy: 0.9, Validation precision: 0.1, Validation recall: 1.0, Validation F1: 0.9470588235294117\n",
            "\n",
            "Epoch 5\n",
            " Train loss: 0.5249914526939392, Train accuracy: 0.5, Train precision: 0.9567550505050503, Train recall: 0.9842171717171717, Train F1: 0.9689059714795007\n",
            " Validation loss: 0.46335142850875854, Validation accuracy: 0.9777777777777779, Validation precision: 0.8, Validation recall: 1.0, Validation F1: 0.9882352941176471\n",
            "\n",
            "Epoch 6\n",
            " Train loss: 0.4622015357017517, Train accuracy: 0.7954545454545454, Train precision: 0.9823232323232323, Train recall: 0.9949494949494949, Train F1: 0.9879679144385026\n",
            " Validation loss: 0.40393179655075073, Validation accuracy: 1.0, Validation precision: 1.0, Validation recall: 1.0, Validation F1: 1.0\n",
            "\n",
            "Epoch 7\n",
            " Train loss: 0.4136589467525482, Train accuracy: 0.7272727272727273, Train precision: 0.9924242424242425, Train recall: 0.9772727272727273, Train F1: 0.983957219251337\n",
            " Validation loss: 0.3397861421108246, Validation accuracy: 1.0, Validation precision: 1.0, Validation recall: 1.0, Validation F1: 1.0\n",
            "\n",
            "Epoch 8\n",
            " Train loss: 0.3588196933269501, Train accuracy: 0.6818181818181818, Train precision: 0.9823232323232323, Train recall: 0.9823232323232323, Train F1: 0.981283422459893\n",
            " Validation loss: 0.27445414662361145, Validation accuracy: 1.0, Validation precision: 1.0, Validation recall: 1.0, Validation F1: 1.0\n",
            "\n",
            "Epoch 9\n",
            " Train loss: 0.3069680631160736, Train accuracy: 0.75, Train precision: 0.9924242424242423, Train recall: 0.9797979797979799, Train F1: 0.9852941176470587\n",
            " Validation loss: 0.212839275598526, Validation accuracy: 1.0, Validation precision: 1.0, Validation recall: 1.0, Validation F1: 1.0\n",
            "\n",
            "Epoch 10\n",
            " Train loss: 0.2475479394197464, Train accuracy: 0.7727272727272727, Train precision: 0.9974747474747474, Train recall: 0.9772727272727273, Train F1: 0.9866310160427806\n",
            " Validation loss: 0.15930519998073578, Validation accuracy: 1.0, Validation precision: 1.0, Validation recall: 1.0, Validation F1: 1.0\n",
            "\n",
            "Epoch 11\n",
            " Train loss: 0.19066911935806274, Train accuracy: 0.8181818181818182, Train precision: 1.0, Train recall: 0.9797979797979799, Train F1: 0.9893048128342247\n",
            " Validation loss: 0.11670023947954178, Validation accuracy: 1.0, Validation precision: 1.0, Validation recall: 1.0, Validation F1: 1.0\n",
            "\n",
            "Epoch 12\n",
            " Train loss: 0.1610732078552246, Train accuracy: 0.7954545454545454, Train precision: 1.0, Train recall: 0.9772727272727273, Train F1: 0.9879679144385026\n",
            " Validation loss: 0.08390464633703232, Validation accuracy: 1.0, Validation precision: 1.0, Validation recall: 1.0, Validation F1: 1.0\n",
            "\n",
            "Epoch 13\n",
            " Train loss: 0.13928207755088806, Train accuracy: 0.75, Train precision: 0.9974747474747474, Train recall: 0.9747474747474747, Train F1: 0.985294117647059\n",
            " Validation loss: 0.059677839279174805, Validation accuracy: 1.0, Validation precision: 1.0, Validation recall: 1.0, Validation F1: 1.0\n",
            "\n",
            "Epoch 14\n",
            " Train loss: 0.11630621552467346, Train accuracy: 0.7727272727272727, Train precision: 1.0, Train recall: 0.9747474747474747, Train F1: 0.9866310160427808\n",
            " Validation loss: 0.042320288717746735, Validation accuracy: 1.0, Validation precision: 1.0, Validation recall: 1.0, Validation F1: 1.0\n",
            "\n",
            "Epoch 15\n",
            " Train loss: 0.0888875350356102, Train accuracy: 0.8181818181818182, Train precision: 1.0, Train recall: 0.9797979797979799, Train F1: 0.9893048128342247\n",
            " Validation loss: 0.029797716066241264, Validation accuracy: 1.0, Validation precision: 1.0, Validation recall: 1.0, Validation F1: 1.0\n",
            "\n",
            "Epoch 16\n",
            " Train loss: 0.0770476907491684, Train accuracy: 0.7727272727272727, Train precision: 1.0, Train recall: 0.9747474747474747, Train F1: 0.9866310160427806\n",
            " Validation loss: 0.021402981132268906, Validation accuracy: 1.0, Validation precision: 1.0, Validation recall: 1.0, Validation F1: 1.0\n",
            "\n",
            "Epoch 17\n",
            " Train loss: 0.07476796954870224, Train accuracy: 0.7954545454545454, Train precision: 1.0, Train recall: 0.9772727272727273, Train F1: 0.9879679144385026\n",
            " Validation loss: 0.01586798205971718, Validation accuracy: 1.0, Validation precision: 1.0, Validation recall: 1.0, Validation F1: 1.0\n",
            "\n",
            "Epoch 18\n",
            " Train loss: 0.06654129922389984, Train accuracy: 0.7954545454545454, Train precision: 1.0, Train recall: 0.9772727272727273, Train F1: 0.9879679144385026\n",
            " Validation loss: 0.012122470885515213, Validation accuracy: 1.0, Validation precision: 1.0, Validation recall: 1.0, Validation F1: 1.0\n",
            "\n",
            "Epoch 19\n",
            " Train loss: 0.06701734662055969, Train accuracy: 0.7727272727272727, Train precision: 1.0, Train recall: 0.9747474747474747, Train F1: 0.9866310160427806\n",
            " Validation loss: 0.009723044000566006, Validation accuracy: 1.0, Validation precision: 1.0, Validation recall: 1.0, Validation F1: 1.0\n",
            "\n",
            "Epoch 20\n",
            " Train loss: 0.05469635874032974, Train accuracy: 0.7727272727272727, Train precision: 1.0, Train recall: 0.9747474747474747, Train F1: 0.9866310160427806\n",
            " Validation loss: 0.008281053975224495, Validation accuracy: 1.0, Validation precision: 1.0, Validation recall: 1.0, Validation F1: 1.0\n",
            "\n",
            "Epoch 21\n",
            " Train loss: 0.05620460584759712, Train accuracy: 0.7727272727272727, Train precision: 1.0, Train recall: 0.9747474747474747, Train F1: 0.9866310160427806\n",
            " Validation loss: 0.007565483916550875, Validation accuracy: 1.0, Validation precision: 1.0, Validation recall: 1.0, Validation F1: 1.0\n",
            "\n",
            "Epoch 22\n",
            " Train loss: 0.05414662882685661, Train accuracy: 0.7727272727272727, Train precision: 1.0, Train recall: 0.9747474747474747, Train F1: 0.9866310160427808\n",
            " Validation loss: 0.0073089078068733215, Validation accuracy: 1.0, Validation precision: 1.0, Validation recall: 1.0, Validation F1: 1.0\n",
            "\n",
            "Epoch 23\n",
            " Train loss: 0.05048809573054314, Train accuracy: 0.75, Train precision: 0.9974747474747474, Train recall: 0.9747474747474747, Train F1: 0.985294117647059\n",
            " Validation loss: 0.007277133874595165, Validation accuracy: 1.0, Validation precision: 1.0, Validation recall: 1.0, Validation F1: 1.0\n",
            "\n",
            "Epoch 24\n",
            " Train loss: 0.04654974490404129, Train accuracy: 0.7727272727272727, Train precision: 1.0, Train recall: 0.9747474747474747, Train F1: 0.9866310160427806\n",
            " Validation loss: 0.007529057562351227, Validation accuracy: 1.0, Validation precision: 1.0, Validation recall: 1.0, Validation F1: 1.0\n",
            "\n",
            "Epoch 25\n",
            " Train loss: 0.045487627387046814, Train accuracy: 0.7727272727272727, Train precision: 1.0, Train recall: 0.9747474747474748, Train F1: 0.9866310160427808\n",
            " Validation loss: 0.007987906225025654, Validation accuracy: 1.0, Validation precision: 1.0, Validation recall: 1.0, Validation F1: 1.0\n",
            "\n",
            "Epoch 26\n",
            " Train loss: 0.05036658048629761, Train accuracy: 0.7727272727272727, Train precision: 1.0, Train recall: 0.9747474747474747, Train F1: 0.9866310160427806\n",
            " Validation loss: 0.008587595075368881, Validation accuracy: 1.0, Validation precision: 1.0, Validation recall: 1.0, Validation F1: 1.0\n",
            "\n",
            "Epoch 27\n",
            " Train loss: 0.041229505091905594, Train accuracy: 0.7727272727272727, Train precision: 1.0, Train recall: 0.9747474747474747, Train F1: 0.9866310160427806\n",
            " Validation loss: 0.009358992800116539, Validation accuracy: 1.0, Validation precision: 1.0, Validation recall: 1.0, Validation F1: 1.0\n",
            "\n",
            "Epoch 28\n",
            " Train loss: 0.03802086412906647, Train accuracy: 0.7954545454545454, Train precision: 1.0, Train recall: 0.9772727272727273, Train F1: 0.9879679144385026\n",
            " Validation loss: 0.01018582284450531, Validation accuracy: 1.0, Validation precision: 1.0, Validation recall: 1.0, Validation F1: 1.0\n",
            "\n",
            "Epoch 29\n",
            " Train loss: 0.04730575531721115, Train accuracy: 0.7727272727272727, Train precision: 1.0, Train recall: 0.9747474747474748, Train F1: 0.9866310160427808\n",
            " Validation loss: 0.010975394397974014, Validation accuracy: 1.0, Validation precision: 1.0, Validation recall: 1.0, Validation F1: 1.0\n",
            "\n"
          ]
        }
      ],
      "source": [
        "num_epochs = 30\n",
        "train_loss_log, train_acc_log, train_prec_log, train_recall_log, train_f1_log, val_loss_log, val_acc_log, val_prec_log, val_recall_log, val_f1_log = train(pretrained_model, optimizer, num_epochs, train_dataloader, val_dataloader)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 23,
      "id": "65fd9f7c",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2024-01-17T14:30:20.138341Z",
          "iopub.status.busy": "2024-01-17T14:30:20.136737Z",
          "iopub.status.idle": "2024-01-17T14:31:22.945503Z",
          "shell.execute_reply": "2024-01-17T14:31:22.944061Z"
        },
        "papermill": {
          "duration": 62.87552,
          "end_time": "2024-01-17T14:31:22.949464",
          "exception": false,
          "start_time": "2024-01-17T14:30:20.073944",
          "status": "completed"
        },
        "tags": [],
        "id": "65fd9f7c",
        "outputId": "2334d753-15f5-45c7-cbae-6f139af5ac27",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Test Loss: 0.011582281440496445\n",
            "Test Accuracy: 1.0\n",
            "Test Precision: 1.0\n",
            "Test Recall: 1.0\n",
            "Test F1 Score: 1.0\n"
          ]
        }
      ],
      "source": [
        "pretrained_model.eval()\n",
        "\n",
        "test_loss, test_acc, test_prec, test_recall, test_f1 = test(pretrained_model, test_dataloader)\n",
        "\n",
        "print(f\"Test Loss: {test_loss}\")\n",
        "print(f\"Test Accuracy: {test_acc}\")\n",
        "print(f\"Test Precision: {test_prec}\")\n",
        "print(f\"Test Recall: {test_recall}\")\n",
        "print(f\"Test F1 Score: {test_f1}\")"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 24,
      "id": "83f92a97",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2024-01-17T14:31:23.089916Z",
          "iopub.status.busy": "2024-01-17T14:31:23.088263Z",
          "iopub.status.idle": "2024-01-17T14:31:23.904469Z",
          "shell.execute_reply": "2024-01-17T14:31:23.903245Z"
        },
        "papermill": {
          "duration": 0.892001,
          "end_time": "2024-01-17T14:31:23.907447",
          "exception": false,
          "start_time": "2024-01-17T14:31:23.015446",
          "status": "completed"
        },
        "tags": [],
        "id": "83f92a97",
        "outputId": "0df3076e-82e2-4323-f29f-5559faa35268",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 957
        }
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 1200x600 with 1 Axes>"
            ],
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+kAAAIjCAYAAAB/OVoZAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAC/fklEQVR4nOzdd3hT5f/G8XdW093S0sXeswyZskVBBURwb9wTJ279qThwDxT3Xl8nuAEV3CAyRGbZe7SlBbpnkvP7I21o6aCFpum4X9fVq83JGZ80aZr7PM95HpNhGAYiIiIiIiIi4nNmXxcgIiIiIiIiIm4K6SIiIiIiIiJ1hEK6iIiIiIiISB2hkC4iIiIiIiJSRyiki4iIiIiIiNQRCukiIiIiIiIidYRCuoiIiIiIiEgdoZAuIiIiIiIiUkcopIuIiIiIiIjUEQrpIiJSLW3atOGyyy7z2fEvu+wy2rRpU2pZVlYWV111FbGxsZhMJm699Va2b9+OyWTi/fffr/UaTzjhBE444YRaP25d9fvvv2Mymfj99999XYpUQ/Hf0LPPPuvrUkREGhWFdBERAWDLli1ce+21tGvXDn9/f0JDQxkyZAgvvvgiubm5vi6vUo8//jjvv/8+119/PR999BGXXHKJ14+ZkJDA1KlT2b59u9ePVVXFYdhkMvHxxx+Xu86QIUMwmUzEx8cf1TE++eQTpk+ffgxVSrHiEFzR15NPPunrEkVExAesvi5ARER8b/bs2ZxzzjnY7XYmTZpEfHw8BQUFLFiwgDvvvJO1a9fy5ptv+rpMAN566y1cLlepZb/++ivHH388Dz30kGeZYRjk5uZis9m8UkdCQgIPP/wwJ5xwQpmW/Z9//tkrx6wqf39/PvnkEy6++OJSy7dv387ff/+Nv7//Ue/7k08+Yc2aNdx6661V3mb48OHk5ubi5+d31MdtyC644ALGjh1bZvlxxx3ng2pERMTXFNJFRBq5bdu2cf7559O6dWt+/fVX4uLiPPdNnjyZzZs3M3v2bB9WWFp5oXvfvn1069at1DKTyXRMYfRY+DqMjh07lu+++47U1FSaNm3qWf7JJ58QExNDx44dOXjwoNfryMvLw8/PD7PZ7LPnwteys7MJCgqqdJ0+ffqUOaEiIiKNl7q7i4g0ck8//TRZWVm88847pQJ6sQ4dOnDLLbdUuP2BAwe444476NGjB8HBwYSGhjJmzBhWrlxZZt0ZM2bQvXt3AgMDadKkCf369eOTTz7x3J+Zmcmtt95KmzZtsNvtREdHM3r0aJYvX+5Zp+Q16cXdu7dt28bs2bM93YS3b99e4TXp69ev59xzzyUqKoqAgAA6d+7M/fff77l/x44d3HDDDXTu3JmAgAAiIyM555xzSnVrf//99znnnHMAGDlypOe4xddcl3dN+r59+7jyyiuJiYnB39+fXr168cEHH5Rap+Q1wG+++Sbt27fHbrfTv39/li5dWuFzcLgJEyZgt9v58ssvSy3/5JNPOPfcc7FYLOVu9/HHH9O3b18CAgKIiIjg/PPPZ9euXZ77TzjhBGbPns2OHTs8j/nw5+Kzzz7j//7v/2jevDmBgYFkZGRUeE364sWLGTt2LE2aNCEoKIiePXvy4osveu5PSkri8ssvp0WLFtjtduLi4pgwYUKVLjH49ddfGTZsGEFBQYSHhzNhwgTWrVvnuX/mzJmYTCb++OOPMtu+8cYbmEwm1qxZ41m2fv16zj77bCIiIvD396dfv3589913pbZ7//33Pfu84YYbiI6OpkWLFkestSratGnDaaedxs8//0zv3r3x9/enW7dufPXVV2XW3bp1K+eccw4REREEBgZy/PHHl3uiLS8vj6lTp9KpUyf8/f2Ji4vjzDPPZMuWLWXWPdLr8VieKxERKU0t6SIijdz3339Pu3btGDx48FFtv3XrVr755hvOOecc2rZtS3JyMm+88QYjRowgISGBZs2aAe5u6jfffDNnn302t9xyC3l5eaxatYrFixdz4YUXAnDdddcxc+ZMbrzxRrp168b+/ftZsGAB69ato0+fPmWO3bVrVz766CNuu+02WrRowe233w5AVFQUKSkpZdZftWoVw4YNw2azcc0119CmTRu2bNnC999/z7Rp0wBYunQpf//9N+effz4tWrRg+/btvPbaa5xwwgkkJCQQGBjI8OHDufnmm3nppZe477776Nq1q6ee8uTm5nLCCSewefNmbrzxRtq2bcuXX37JZZddRlpaWpmTIJ988gmZmZlce+21mEwmnn76ac4880y2bt1ape77gYGBTJgwgU8//ZTrr78egJUrV7J27VrefvttVq1aVWabadOm8cADD3Duuedy1VVXkZKSwowZMxg+fDj//fcf4eHh3H///aSnp7N7925eeOEFAIKDg0vt59FHH8XPz4877riD/Pz8CnsVzJs3j9NOO424uDhuueUWYmNjWbduHT/88IPn93HWWWexdu1abrrpJtq0acO+ffuYN28eO3fuLHOJQUnz589nzJgxtGvXjqlTp5Kbm8uMGTMYMmQIy5cvp02bNowbN47g4GC++OILRowYUWr7zz//nO7du3uu21+7di1DhgyhefPm3HPPPQQFBfHFF18wceJEZs2axRlnnFFq+xtuuIGoqCgefPBBsrOzK3mm3HJyckhNTS2zPDw8HKv10Ee1TZs2cd5553Hddddx6aWX8t5773HOOefw448/Mnr0aACSk5MZPHgwOTk53HzzzURGRvLBBx9w+umnM3PmTE+tTqeT0047jV9++YXzzz+fW265hczMTObNm8eaNWto376957hVeT0e7XMlIiLlMEREpNFKT083AGPChAlV3qZ169bGpZde6rmdl5dnOJ3OUuts27bNsNvtxiOPPOJZNmHCBKN79+6V7jssLMyYPHlypetceumlRuvWrcvUNG7cuDI1AMZ7773nWTZ8+HAjJCTE2LFjR6l1XS6X5+ecnJwyx1y0aJEBGB9++KFn2ZdffmkAxm+//VZm/REjRhgjRozw3J4+fboBGB9//LFnWUFBgTFo0CAjODjYyMjIKFVzZGSkceDAAc+63377rQEY33//fdlfSAm//fabARhffvml8cMPPxgmk8nYuXOnYRiGceeddxrt2rXz1Ffyudi+fbthsViMadOmldrf6tWrDavVWmr5uHHjyvz+Sx67Xbt2ZX6HxfcV/64cDofRtm1bo3Xr1sbBgwdLrVv8XBw8eNAAjGeeeabSx1ye3r17G9HR0cb+/fs9y1auXGmYzWZj0qRJnmUXXHCBER0dbTgcDs+yxMREw2w2l3rtnnTSSUaPHj2MvLy8UnUOHjzY6Nixo2fZe++9ZwDG0KFDS+2zIsXPd0VfixYt8qzbunVrAzBmzZrlWZaenm7ExcUZxx13nGfZrbfeagDGX3/95VmWmZlptG3b1mjTpo3nb/Xdd981AOP5558vU1fxc1DV1+OxPFciIlKWuruLiDRiGRkZAISEhBz1Pux2O2az+9+J0+lk//79BAcH07lz51Ld1MPDw9m9e3el3bbDw8NZvHgxe/fuPep6KpKSksKff/7JFVdcQatWrUrdZzKZPD8HBAR4fi4sLGT//v106NCB8PDwUo+nOubMmUNsbCwXXHCBZ5nNZuPmm28mKyurTJfr8847jyZNmnhuDxs2DHD3Wqiqk08+mYiICD777DMMw+Czzz4rdfySvvrqK1wuF+eeey6pqamer9jYWDp27Mhvv/1W5eNeeumlpX6H5fnvv//Ytm0bt956K+Hh4aXuK34uAgIC8PPz4/fff6/W9fOJiYmsWLGCyy67jIiICM/ynj17Mnr0aObMmeNZdt5557Fv375S3fBnzpyJy+XivPPOA9yXc/z666+ce+65ZGZmen43+/fv55RTTmHTpk3s2bOnVA1XX311hZcUlOeaa65h3rx5Zb4OH2ehWbNmpVrtQ0NDmTRpEv/99x9JSUmA+7U2YMAAhg4d6lkvODiYa665hu3bt5OQkADArFmzaNq0KTfddFOZekr+PRT/nip7PR7tcyUiIuVTSBcRacRCQ0MB97XgR8vlcvHCCy/QsWNH7HY7TZs2JSoqilWrVpGenu5Z7+677yY4OJgBAwbQsWNHJk+ezMKFC0vt6+mnn2bNmjW0bNmSAQMGMHXq1GoF08oU7+dIU4/l5uby4IMP0rJly1KPJy0trdTjqY4dO3bQsWNHz8mMYsXd43fs2FFq+eEnEYoDUnUCkM1m45xzzuGTTz7hzz//ZNeuXZ7LCg63adMmDMOgY8eOREVFlfpat24d+/btq/Jx27Zte8R1iq95ruy5sNvtPPXUU8ydO5eYmBiGDx/O008/7QmjFSn+XXbu3LnMfV27diU1NdXTBf3UU08lLCyMzz//3LPO559/Tu/evenUqRMAmzdvxjAMHnjggTK/m+LZBA7//VTld1BSx44dGTVqVJmv4r/PYh06dCgToIvrLL72e8eOHRU+9uL7wf0cdO7cuVR3+ooc6fV4tM+ViIiUTyFdRKQRCw0NpVmzZqUGyKquxx9/nClTpjB8+HA+/vhjfvrpJ+bNm0f37t1LTZXWtWtXNmzYwGeffcbQoUOZNWsWQ4cOLTVt2rnnnsvWrVuZMWMGzZo145lnnqF79+7MnTv3mB5nddx0001MmzaNc889ly+++IKff/6ZefPmERkZWWbqN2+pqBXWMIxq7efCCy9kxYoVTJ06lV69epVpmS3mcrkwmUz8+OOP5bbovvHGG1U+5pFa0avj1ltvZePGjTzxxBP4+/vzwAMP0LVrV/77778a2b/dbmfixIl8/fXXOBwO9uzZw8KFCz2t6IDnOb/jjjvK/d3MmzePDh06lNpvTf4O6oKqvB69/VyJiDQmGjhORKSRO+2003jzzTdZtGgRgwYNqvb2M2fOZOTIkbzzzjullqelpZWa/gsgKCiI8847j/POO4+CggLOPPNMpk2bxr333uuZoisuLo4bbriBG264gX379tGnTx+mTZvGmDFjjv5BAu3atQM44gmJmTNncumll/Lcc895luXl5ZGWllZqvcNbNCvTunVrVq1ahcvlKtWavn79es/93jB06FBatWrF77//zlNPPVXheu3bt8cwDNq2betpma1IdR53ZccD93MxatSoI657++23c/vtt7Np0yZ69+7Nc889x8cff1zu+sW/yw0bNpS5b/369TRt2rTUlGjnnXceH3zwAb/88gvr1q3DMIxSIb34dWOz2Y5Yq7cVt+qXfA42btwI4BmcrXXr1hU+9uL7wf17Xbx4MYWFhVUajLAqqvtciYhI+dSSLiLSyN11110EBQVx1VVXkZycXOb+LVu2lJoW63AWi6VMC++XX35Z5jrd/fv3l7rt5+dHt27dMAyDwsJCnE5nme7k0dHRNGvWjPz8/Oo+rDKioqIYPnw47777Ljt37ix1X8n6y3s8M2bMwOl0llpWHPQOD+/lGTt2LElJSaW6VTscDmbMmEFwcHCZ0cVrislk4qWXXuKhhx7ikksuqXC9M888E4vFwsMPP1zmsRuGUeq5CwoKOupu/8X69OlD27ZtmT59epnfX/Hxc3JyyMvLK3Vf+/btCQkJqfT1EBcXR+/evfnggw9K7XvNmjX8/PPPjB07ttT6o0aNIiIigs8//5zPP/+cAQMGlOquHh0dzQknnMAbb7xBYmJimeOVN4uAt+zdu5evv/7aczsjI4MPP/yQ3r17ExsbC7hfa0uWLGHRokWe9bKzs3nzzTdp06aNpzfFWWedRWpqKi+//HKZ41S3x8bRPlciIlI+taSLiDRy7du355NPPuG8886ja9euTJo0ifj4eAoKCvj77789U4VV5LTTTuORRx7h8ssvZ/DgwaxevZr//e9/nhbIYieffDKxsbEMGTKEmJgY1q1bx8svv8y4ceMICQkhLS2NFi1acPbZZ9OrVy+Cg4OZP38+S5cuLdWqfSxeeuklhg4dSp8+fbjmmmto27Yt27dvZ/bs2axYscLz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cePG13Sst7e3Xf/DS82g+0iqgu4jqQq6j+R66R6SqqD7SKpCTbiPKmpBv0gTx4mIiIiIiIjYCSXpIiIiIiIiInZCSXoluLi4MHHiRFxcXIwORWow3UdSFXQfSVXQfSTXS/eQVAXdR1IVauN9VOcmjhMRERERERGxV2pJFxEREREREbETStJFRERERERE7ISSdBERERERERE7oSRdRERERERExE4oSa+EV199lWbNmuHq6kqnTp3YunWr0SFJDTJp0iRMJpPN0qpVK6PDEju3ceNG+vTpQ8OGDTGZTKxYscJmv8ViYcKECYSEhODm5kbPnj358ccfjQlW7FJF99DQoUMvezYlJCQYE6zYrfT0dDp06ICXlxeBgYH07duXrKwsmzKFhYWMHDmS+vXr4+npyX333cexY8cMiljsTWXuoTvuuOOy59Gjjz5qUMRij+bNm0ebNm3w9vbG29ubzp0788knn1j317bnkJL0Crz77ruMGTOGiRMnsn37dqKjo4mPj+f48eNGhyY1yM0330xOTo512bRpk9EhiZ3Lz88nOjqaV199tcz9M2bM4JVXXmH+/Pls2bIFDw8P4uPjKSwsrOZIxV5VdA8BJCQk2Dyb3nnnnWqMUGqCL774gpEjR/L111+zdu1aSkpKuPvuu8nPz7eWefLJJ/n3v//NsmXL+OKLLzhy5Aj33nuvgVGLPanMPQTwyCOP2DyPZsyYYVDEYo8aN27M9OnT+fbbb/nmm2/o3r0799xzD99//z1QC59DFilXx44dLSNHjrSul5aWWho2bGhJT083MCqpSSZOnGiJjo42OgypwQDL8uXLretms9kSHBxsefHFF63bTp8+bXFxcbG88847BkQo9u7Se8hisViSk5Mt99xzjyHxSM11/PhxC2D54osvLBbLhWePk5OTZdmyZdYye/futQCWzZs3GxWm2LFL7yGLxWKJi4uzPP7448YFJTWSn5+f5fXXX6+VzyG1pJejuLiYb7/9lp49e1q3OTg40LNnTzZv3mxgZFLT/PjjjzRs2JDmzZszaNAgDh06ZHRIUoMdOHCAo0eP2jybfHx86NSpk55NclU2bNhAYGAgLVu25LHHHuPkyZNGhyR2Ljc3FwB/f38Avv32W0pKSmyeR61ataJJkyZ6HkmZLr2HLlq8eDENGjTglltuYdy4cRQUFBgRntQApaWlLF26lPz8fDp37lwrn0P1jA7Anv3222+UlpYSFBRksz0oKIh9+/YZFJXUNJ06dWLRokW0bNmSnJwcJk+eTLdu3fjuu+/w8vIyOjypgY4ePQpQ5rPp4j6RiiQkJHDvvfcSFhZGdnY2zzzzDL169WLz5s04OjoaHZ7YIbPZzBNPPEHXrl255ZZbgAvPI2dnZ3x9fW3K6nkkZSnrHgIYOHAgTZs2pWHDhuzatYu0tDSysrL48MMPDYxW7M3u3bvp3LkzhYWFeHp6snz5clq3bk1mZmatew4pSRe5wXr16mX9u02bNnTq1ImmTZvy3nvv8fDDDxsYmYjUZQ888ID176ioKNq0aUOLFi3YsGEDPXr0MDAysVcjR47ku+++07wqcs2udA8NHz7c+ndUVBQhISH06NGD7OxsWrRoUd1hip1q2bIlmZmZ5Obm8v7775OcnMwXX3xhdFg3hLq7l6NBgwY4OjpeNjPgsWPHCA4ONigqqel8fX256aab2L9/v9GhSA118fmjZ5NUpebNm9OgQQM9m6RMKSkp/Oc//+Hzzz+ncePG1u3BwcEUFxdz+vRpm/J6HsmlrnQPlaVTp04Aeh6JDWdnZ8LDw4mJiSE9PZ3o6Ghmz55dK59DStLL4ezsTExMDOvXr7duM5vNrF+/ns6dOxsYmdRkZ8+eJTs7m5CQEKNDkRoqLCyM4OBgm2dTXl4eW7Zs0bNJrtkvv/zCyZMn9WwSGxaLhZSUFJYvX85nn31GWFiYzf6YmBicnJxsnkdZWVkcOnRIzyMBKr6HypKZmQmg55GUy2w2U1RUVCufQ+ruXoExY8aQnJxMbGwsHTt2ZNasWeTn5/PQQw8ZHZrUEKmpqfTp04emTZty5MgRJk6ciKOjI0lJSUaHJnbs7NmzNi0IBw4cIDMzE39/f5o0acITTzzBc889R0REBGFhYYwfP56GDRvSt29f44IWu1LePeTv78/kyZO57777CA4OJjs7m6eeeorw8HDi4+MNjFrszciRI1myZAkfffQRXl5e1vGdPj4+uLm54ePjw8MPP8yYMWPw9/fH29ubUaNG0blzZ2699VaDoxd7UNE9lJ2dzZIlS+jduzf169dn165dPPnkk9x+++20adPG4OjFXowbN45evXrRpEkTzpw5w5IlS9iwYQOrV6+unc8ho6eXrwnmzJljadKkicXZ2dnSsWNHy9dff210SFKDDBgwwBISEmJxdna2NGrUyDJgwADL/v37jQ5L7Nznn39uAS5bkpOTLRbLhc+wjR8/3hIUFGRxcXGx9OjRw5KVlWVs0GJXyruHCgoKLHfffbclICDA4uTkZGnatKnlkUcesRw9etTosMXOlHUPAZaFCxday5w7d84yYsQIi5+fn8Xd3d2SmJhoycnJMS5osSsV3UOHDh2y3H777RZ/f3+Li4uLJTw83DJ27FhLbm6usYGLXRk2bJiladOmFmdnZ0tAQIClR48eljVr1lj317bnkMlisViq86WAiIiIiIiIiJRNY9JFRERERERE7ISSdBERERERERE7oSRdRERERERExE4oSRcRERERERGxE0rSRUREREREROyEknQRERERERERO6EkXURERERERMROKEkXERERERERsRNK0kVERKTKmUwmVqxYYXQYIiIiNY6SdBERkVpm6NChmEymy5aEhASjQxMREZEK1DM6ABEREal6CQkJLFy40Gabi4uLQdGIiIhIZaklXUREpBZycXEhODjYZvHz8wMudEWfN28evXr1ws3NjebNm/P+++/bHL979266d++Om5sb9evXZ/jw4Zw9e9amzBtvvMHNN9+Mi4sLISEhpKSk2Oz/7bffSExMxN3dnYiICFauXGndd+rUKQYNGkRAQABubm5ERERc9lJBRESkLlKSLiIiUgeNHz+e++67j507dzJo0CAeeOAB9u7dC0B+fj7x8fH4+fmxbds2li1bxrp162yS8Hnz5jFy5EiGDx/O7t27WblyJeHh4TbnmDx5Mv3792fXrl307t2bQYMG8fvvv1vPv2fPHj755BP27t3LvHnzaNCgQfX9ACIiInbKZLFYLEYHISIiIlVn6NChvP3227i6utpsf+aZZ3jmmWcwmUw8+uijzJs3z7rv1ltvpX379vz973/ntddeIy0tjcOHD+Ph4QHAxx9/TJ8+fThy5AhBQUE0atSIhx56iOeee67MGEwmE88++yxTp04FLiT+np6efPLJJyQkJPDHP/6RBg0a8MYbb9ygX0FERKRm0ph0ERGRWujOO++0ScIB/P39rX937tzZZl/nzp3JzMwEYO/evURHR1sTdICuXbtiNpvJysrCZDJx5MgRevToUW4Mbdq0sf7t4eGBt7c3x48fB+Cxxx7jvvvuY/v27dx999307duXLl26XNO1ioiI1CZK0kVERGohDw+Py7qfVxU3N7dKlXNycrJZN5lMmM1mAHr16sXBgwf5+OOPWbt2LT169GDkyJHMnDmzyuMVERGpSTQmXUREpA76+uuvL1uPjIwEIDIykp07d5Kfn2/dn5GRgYODAy1btsTLy4tmzZqxfv3664ohICCA5ORk3n77bWbNmsU///nP66pPRESkNlBLuoiISC1UVFTE0aNHbbbVq1fPOjnbsmXLiI2N5bbbbmPx4sVs3bqVBQsWADBo0CAmTpxIcnIykyZN4sSJE4waNYoHH3yQoKAgACZNmsSjjz5KYGAgvXr14syZM2RkZDBq1KhKxTdhwgRiYmK4+eabKSoq4j//+Y/1JYGIiEhdpiRdRESkFvr0008JCQmx2dayZUv27dsHXJh5fenSpYwYMYKQkBDeeecdWrduDYC7uzurV6/m8ccfp0OHDri7u3Pffffx8ssvW+tKTk6msLCQv/3tb6SmptKgQQP69etX6ficnZ0ZN24cP//8M25ubnTr1o2lS5dWwZWLiIjUbJrdXUREpI4xmUwsX76cvn37Gh2KiIiIXEJj0kVERERERETshJJ0ERERERERETuhMekiIiJ1jEa6iYiI2C+1pIuIiIiIiIjYCSXpIiIiIiIiInZCSbqIiIiIiIiInVCSLiIiIiIiImInlKSLiIiIiIiI2Akl6SIiIiIiIiJ2Qkm6iIiIiIiIiJ1Qki4iIiIiIiJiJ/4X2s6kI8kIucEAAAAASUVORK5CYII=\n"
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 600x400 with 1 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {}
        }
      ],
      "source": [
        "import matplotlib.pyplot as plt\n",
        "\n",
        "epochs = list(range(1, len(train_loss_log) + 1))\n",
        "\n",
        "# График метрик\n",
        "plt.figure(figsize=(12, 6))\n",
        "plt.plot(epochs, train_acc_log, label='Training Accuracy')\n",
        "plt.plot(epochs, train_prec_log, label='Training Precision')\n",
        "plt.plot(epochs, train_recall_log, label='Training Recall')\n",
        "plt.plot(epochs, train_f1_log, label='Training F1 Score')\n",
        "\n",
        "plt.xlabel('Epochs')\n",
        "plt.ylabel('Metrics')\n",
        "plt.title('Classification Metrics over Epochs')\n",
        "plt.legend()\n",
        "plt.show()\n",
        "\n",
        "# График функции потерь\n",
        "plt.figure(figsize=(6, 4))\n",
        "plt.plot(epochs, train_loss_log, label='Training Loss')\n",
        "\n",
        "plt.xlabel('Epochs')\n",
        "plt.ylabel('Loss')\n",
        "plt.title('Training Loss over Epochs')\n",
        "plt.legend()\n",
        "plt.show()\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 25,
      "id": "ed4c7a81",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2024-01-17T14:31:24.049747Z",
          "iopub.status.busy": "2024-01-17T14:31:24.049107Z",
          "iopub.status.idle": "2024-01-17T14:31:24.810160Z",
          "shell.execute_reply": "2024-01-17T14:31:24.808577Z"
        },
        "papermill": {
          "duration": 0.833681,
          "end_time": "2024-01-17T14:31:24.813406",
          "exception": false,
          "start_time": "2024-01-17T14:31:23.979725",
          "status": "completed"
        },
        "tags": [],
        "id": "ed4c7a81",
        "outputId": "e431effd-0f0c-466f-9648-f1909c781376",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 957
        }
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 1200x600 with 1 Axes>"
            ],
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+kAAAIjCAYAAAB/OVoZAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACNRUlEQVR4nOzdeZzN9R7H8fc5s+8YYxZNxr4zIYVCRUMRRSbZ125FSS7JEhVdqa5EqW5MKmvFrRQhdYUQ2TL2XWPGOvt+fvePMSdjBjPMzDkz83o+Hucxv/md7+/3+5xzxr29z/f7+35NhmEYAgAAAAAANme2dQEAAAAAACALIR0AAAAAADtBSAcAAAAAwE4Q0gEAAAAAsBOEdAAAAAAA7AQhHQAAAAAAO0FIBwAAAADAThDSAQAAAACwE4R0AAAAAADsBCEdAFAgISEh6t+/v82u379/f4WEhOTYl5CQoMGDBysgIEAmk0kjRozQsWPHZDKZFBERUew1tm3bVm3bti3269qrn3/+WSaTST///LOtS0EBZP8beuutt2xdCgCUKYR0AIAk6fDhw3rqqadUrVo1ubq6ytvbW61atdK7776r5ORkW5d3XVOnTlVERISefvppffbZZ+rTp0+RX3Pv3r2aNGmSjh07VuTXyq/sMGwymfT555/n2aZVq1YymUxq0KDBTV1jwYIFmjFjxi1UiWzZIfhaj3/961+2LhEAYAOOti4AAGB7K1as0OOPPy4XFxf17dtXDRo0UFpamn799Vf985//1J9//qmPPvrI1mVKkj7++GNZLJYc+3766SfdfffdeuWVV6z7DMNQcnKynJyciqSOvXv3avLkyWrbtm2unv0ff/yxSK6ZX66urlqwYIF69+6dY/+xY8e0ceNGubq63vS5FyxYoD179mjEiBH5PqZ169ZKTk6Ws7PzTV+3NOvZs6ceeuihXPvvuOMOG1QDALA1QjoAlHFHjx7VE088oSpVquinn35SYGCg9blnn31Whw4d0ooVK2xYYU55he6YmBjVq1cvxz6TyXRLYfRW2DqMPvTQQ/rmm2907tw5VaxY0bp/wYIF8vf3V82aNXXx4sUiryMlJUXOzs4ym802+yxsLTExUR4eHtdt06RJk1xfqAAAyi6GuwNAGffmm28qISFBn3zySY6Anq1GjRp6/vnnr3n8hQsXNGrUKDVs2FCenp7y9vZWx44dtXPnzlxt33vvPdWvX1/u7u4qX768mjVrpgULFlifj4+P14gRIxQSEiIXFxdVqlRJ7du31/bt261trrwnPXt499GjR7VixQrrMOFjx45d8570ffv2qUePHvLz85Obm5tq166tcePGWZ8/fvy4nnnmGdWuXVtubm7y9fXV448/nmNYe0REhB5//HFJ0n333We9bvY913ndkx4TE6NBgwbJ399frq6uaty4sT799NMcba68B/ijjz5S9erV5eLiojvvvFNbt2695mdwtS5dusjFxUVLly7NsX/BggXq0aOHHBwc8jzu888/V9OmTeXm5qYKFSroiSee0MmTJ63Pt23bVitWrNDx48etr/nqz2LRokUaP368KleuLHd3d8XFxV3znvTNmzfroYceUvny5eXh4aFGjRrp3XfftT5/5swZDRgwQLfddptcXFwUGBioLl265OsWg59++kn33nuvPDw8VK5cOXXp0kWRkZHW57/88kuZTCb98ssvuY798MMPZTKZtGfPHuu+ffv2qXv37qpQoYJcXV3VrFkzffPNNzmOi4iIsJ7zmWeeUaVKlXTbbbfdsNb8CAkJUadOnfTjjz8qNDRUrq6uqlevnr7++utcbY8cOaLHH39cFSpUkLu7u+6+++48v2hLSUnRpEmTVKtWLbm6uiowMFCPPfaYDh8+nKvtjf4eb+WzAgDkRE86AJRx3377rapVq6aWLVve1PFHjhzR8uXL9fjjj6tq1aqKjo7Whx9+qDZt2mjv3r0KCgqSlDVM/bnnnlP37t31/PPPKyUlRbt27dLmzZv15JNPSpL+8Y9/6Msvv9SwYcNUr149nT9/Xr/++qsiIyPVpEmTXNeuW7euPvvsM73wwgu67bbb9OKLL0qS/Pz8dPbs2Vztd+3apXvvvVdOTk4aOnSoQkJCdPjwYX377beaMmWKJGnr1q3auHGjnnjiCd122206duyYPvjgA7Vt21Z79+6Vu7u7Wrdureeee04zZ87Uyy+/rLp161rryUtycrLatm2rQ4cOadiwYapataqWLl2q/v3769KlS7m+BFmwYIHi4+P11FNPyWQy6c0339Rjjz2mI0eO5Gv4vru7u7p06aKFCxfq6aefliTt3LlTf/75p/7zn/9o165duY6ZMmWKJkyYoB49emjw4ME6e/as3nvvPbVu3Vp//PGHypUrp3Hjxik2NlanTp3Sv//9b0mSp6dnjvO89tprcnZ21qhRo5SamnrNUQWrV69Wp06dFBgYqOeff14BAQGKjIzUd999Z30/unXrpj///FPDhw9XSEiIYmJitHr1ap04cSLXLQZXWrNmjTp27Khq1app0qRJSk5O1nvvvadWrVpp+/btCgkJ0cMPPyxPT08tWbJEbdq0yXH84sWLVb9+fet9+3/++adatWqlypUr66WXXpKHh4eWLFmirl276quvvtKjjz6a4/hnnnlGfn5+mjhxohITE6/zSWVJSkrSuXPncu0vV66cHB3//k+1gwcPKjw8XP/4xz/Ur18/zZs3T48//rhWrlyp9u3bS5Kio6PVsmVLJSUl6bnnnpOvr68+/fRTPfLII/ryyy+ttWZmZqpTp05au3atnnjiCT3//POKj4/X6tWrtWfPHlWvXt163fz8Pd7sZwUAyIMBACizYmNjDUlGly5d8n1MlSpVjH79+ll/T0lJMTIzM3O0OXr0qOHi4mK8+uqr1n1dunQx6tevf91z+/j4GM8+++x12/Tr18+oUqVKrpoefvjhXDVIMubNm2fd17p1a8PLy8s4fvx4jrYWi8W6nZSUlOuamzZtMiQZ8+fPt+5bunSpIclYt25drvZt2rQx2rRpY/19xowZhiTj888/t+5LS0szWrRoYXh6ehpxcXE5avb19TUuXLhgbfvf//7XkGR8++23ud+QK6xbt86QZCxdutT47rvvDJPJZJw4ccIwDMP45z//aVSrVs1a35WfxbFjxwwHBwdjypQpOc63e/duw9HRMcf+hx9+ONf7f+W1q1Wrlus9zH4u+73KyMgwqlatalSpUsW4ePFijrbZn8XFixcNScb06dOv+5rzEhoaalSqVMk4f/68dd/OnTsNs9ls9O3b17qvZ8+eRqVKlYyMjAzrvqioKMNsNuf4233ggQeMhg0bGikpKTnqbNmypVGzZk3rvnnz5hmSjHvuuSfHOa8l+/O+1mPTpk3WtlWqVDEkGV999ZV1X2xsrBEYGGjccccd1n0jRowwJBnr16+37ouPjzeqVq1qhISEWP+tzp0715BkvPPOO7nqyv4M8vv3eCufFQAgN4a7A0AZFhcXJ0ny8vK66XO4uLjIbM76v5PMzEydP39enp6eql27do5h6uXKldOpU6euO2y7XLly2rx5s/7666+brudazp49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G8vT01Nr1qzR1q1bc/Rq34qZM2fqnnvuUZMmTTR06FBVrVpVx44d04oVK7Rjxw7r6/nss8/k4+OjevXqadOmTVqzZo18fX1znCs0NFQODg6aNm2aYmNj5eLiovvvv1+VKlXKdd2hQ4fqww8/VP/+/bVt2zaFhIToyy+/1IYNGzRjxoxbmrjvRrp06aIuXbpct0316tX1+uuva+zYsTp27Ji6du0qLy8vHT16VMuWLdPQoUM1atQoSVLTpk21ePFijRw5Unfeeac8PT3VuXPnAtVkNpv1wQcfqHPnzgoNDdWAAQMUGBioffv26c8//9SqVat04MABPfDAA+rRo4fq1asnR0dHLVu2TNHR0XriiSeue/7p06erY8eOatGihQYNGmRdgs3Hx0eTJk3K0dbJyUmPPfaYFi1apMTERL311lu5zjd79mzdc889atiwoYYMGaJq1aopOjpamzZt0qlTp7Rz584Cvf6rbd++Pc/e5urVq+cY3VKrVi0NGjRIW7dulb+/v+bOnavo6GjNmzfP2uall17SwoUL1bFjRz333HOqUKGCPv30Ux09elRfffWVdSRH3759NX/+fI0cOVJbtmzRvffeq8TERK1Zs0bPPPPMDf9mrnQrnxUAIA/FP6E8AMAeHThwwBgyZIgREhJiODs7G15eXkarVq2M9957L8fSU3ktwfbiiy8agYGBhpubm9GqVStj06ZNuZYh+/DDD43WrVsbvr6+houLi1G9enXjn//8pxEbG2sYhmGkpqYa//znP43GjRsbXl5ehoeHh9G4cWPj/fffz1HnrSzBZhiGsWfPHuPRRx81ypUrZ7i6uhq1a9c2JkyYYH3+4sWLxoABA4yKFSsanp6eRlhYmLFv375cr9swDOPjjz82qlWrZjg4OORYYuzq124YhhEdHW09r7Ozs9GwYcNctWXXnNdSVpKMV155Jdf+K125BNv1XL0EW7avvvrKuOeeewwPDw/Dw8PDqFOnjvHss88a+/fvt7ZJSEgwnnzySaNcuXKGJOtncb1rX70EW7Zff/3VaN++vfXzbtSokfHee+8ZhmEY586dM5599lmjTp06hoeHh+Hj42PcddddxpIlS6772rKtWbPGaNWqleHm5mZ4e3sbnTt3Nvbu3Ztn29WrVxuSDJPJZJw8eTLPNocPHzb69u1rBAQEGE5OTkblypWNTp06GV9++aW1TfYSbFu3bs1XjTdagu3Kv7fsv/FVq1YZjRo1MlxcXIw6derk+X4fPnzY6N69u/VvvHnz5sZ3332Xq11SUpIxbtw4o2rVqoaTk5MREBBgdO/e3Th8+HCO+m7093irnxUAICeTYRRwTBMAAACKVUhIiBo0aKDvvvvO1qUAAIoY96QDAAAAAGAnCOkAAAAAANgJQjoAAAAAAHaCe9IBAAAAALAT9KQDAAAAAGAnCOkAAAAAANgJR1sXUNwsFov++usveXl5yWQy2bocAAAAAEApZxiG4uPjFRQUJLP5+n3lZS6k//XXXwoODrZ1GQAAAACAMubkyZO67bbbrtumzIV0Ly8vSVlvjre3t42rAQAAAACUdnFxcQoODrbm0espcyE9e4i7t7c3IR0AAAAAUGzyc8s1E8cBAAAAAGAnCOkAAAAAANgJQjoAAAAAAHaCkA4AAAAAgJ0gpAMAAAAAYCcI6QAAAAAA2AlCOgAAAAAAdoKQDgAAAACAnSCkAwAAAABgJwjpAAAAAADYCUI6AAAAAAB2gpAOAAAAAICdIKQDAAAAAGAnCOkAAAAAANgJm4b0//3vf+rcubOCgoJkMpm0fPnyGx7z888/q0mTJnJxcVGNGjUUERFR5HUCAAAAAFAcbBrSExMT1bhxY82ePTtf7Y8ePaqHH35Y9913n3bs2KERI0Zo8ODBWrVqVRFXCgAAAABA0XO05cU7duyojh075rv9nDlzVLVqVb399tuSpLp16+rXX3/Vv//9b4WFhRVVmSiFjsUe06FLh2xdRumTnqG0QyeVtGOLTJnptq4GAAAAZcRDI2bKzcPb1mUUCpuG9ILatGmT2rVrl2NfWFiYRowYcc1jUlNTlZqaav09Li6uqMpDCfFXwl/q8V0PJWck27qUEstsMRRwUQo+ayj4rBR8zlDw2ax9jhZbVwcAAICyJr7/WUK6LZw5c0b+/v459vn7+ysuLk7Jyclyc3PLdcwbb7yhyZMnF1eJsHOGYWjq5qlKzkhWJfdKquxZ2dYl2TWTxVC586mqeCZZFc8ky+/yT9/oFDlmGnkek+osXShvKM3BJMlUvAUDAACgTPJ3dLZ1CYWmRIX0mzF27FiNHDnS+ntcXJyCg4NtWBFs6aeTP+mXU7/I0eSoj9p/pOrlqtu6JLtgGIYy/vpLKQcPKu3QIaUePKTUgweVeuSIjJSUPI9JcXDSca8AHff21wnvADlVr6G29c0KOzxKJjcfadRBydGlmF8JAAAAULKVqJAeEBCg6OjoHPuio6Pl7e2dZy+6JLm4uMjFhaAAKSk9SW9sfkOS1L9B/zIZ0A3DUEZMzN8h/NBBpR48pLRDh2RJSsr7GCdnxVaqrH2uftrrUlEnvPx1zDtAFzwr6O4afgqrH6Ce9fxVydtV+vb5rM7zup0J6AAAAMBNKFEhvUWLFvr+++9z7Fu9erVatGhho4pQkry/431FJ0WrsmdlDW001NblFIv06GjF/7j6ciA/pNRDh2S51rwMTk5yCQmRU40aivGtrN9VTt/Fu+lPecliyloIwsXRrNa1/DS6foAeqFtJ5dyvGFaUkSbt/W/WdoPuRfzKAAAAgNLJpiE9ISFBhw79PcP20aNHtWPHDlWoUEG33367xo4dq9OnT2v+/PmSpH/84x+aNWuWRo8erYEDB+qnn37SkiVLtGLFClu9BJQQ+y/s1+eRn0uSXr7rZbk55j3yorSwpKXpwtx5OvfhhzKSr5ogz8FBzlWqyKVGDbnUrCmXmjWkqtW0JdVDK/ef05rIaF1KuDwzu0nydHHU/XUqqUODALWp5ScPl2v8z8aRdVLyRcmjklS1ddG+QAAAAKCUsmlI//3333XfffdZf8++d7xfv36KiIhQVFSUTpw4YX2+atWqWrFihV544QW9++67uu222/Sf//yH5ddwXRbDotd+e02ZRqbaV2mv1reV7gCZ8MsvOjN1qtKPZ/3bcW3USB4tW8ilRlYgd65aVWZnZyWkZmjdvhit/POMft54RIlpmdZzVPBwVvu6/urQIEAta/jKxdHhxhfe/WXWz/qPSuZ8tAcAAACQi8kwjLynaC6l4uLi5OPjo9jYWHl7l44p+nF9Xx74UpM3TZa7o7v+2/W/CvAIsHVJRSLtxAlFv/EvJaxbJ0ly8Kso/9Gj5d2pk0ymrFnWLySmaU1ktFbtOaP1B88pLfPv9dICfVwVVj9AYfUDdGdIeTk6mAtw8SRpeg0pPVEatFoKbl6orw0AAAAoyQqSQ0vUPelAQZ1PPq9/b/u3JGnYHcNKZUC3JCfr/Mcf6/x/PpGRliY5OqpC376q+MzTcvD0VFRssn78M1or95zR5qPnZbnia7mqFT3UoUGAOtQPUKPbfKxhvsAOrsoK6D63S7fdWTgvDAAAACiDCOko1d7Z9o7i0uJUp0Id9azT09blFCrDMBS/erWi//UvZfwVJUnyaNlC/uPGyaV69aw14b+P1Ef/O5LjuHqB3lnBvEGAalbyvPlgfqXsoe4NHpMK43wAAABAGUVIR6m1JWqLvjn8jUwyacLdE+RoLj1/7qlHjij69SlK3LhRkuQYFCj/l16SV/v21tD9/s+HrQG9aZXy6nB5KPvtvu6FW0xKrHRwddZ2Q2Z1BwAAAG5F6UktwBXSMtP02m+vSZJ61O6hRn6NbFxR4chMSNS599/XhfnzpYwMmZyd5Tt4kHyHDJHZ7e8Z67/cdkrTV+2XJE3qXE/9W1UtuqIiv5MyU6WKtSX/BkV3HQAAAKAMIKSjVIr4M0LH4o6pgmsFPdfkOVuXc8sMw1Dcd98p5s3pyjh7VpLked998h/7kpxvvz1H25/3x2jMV7skSf9oU71oA7ok7bk81L1hd4a6AwAAALeIkI5S52TcSX206yNJ0ug7R8vbuWTP4p+yb5/OvP66kn/fJklyqnK7Al5+WZ5t2uRqu+vUJT3zxXZlWgw9ekdljQ6rXbTFJZyVjvyStd2gW9FeCwAAACgDCOkoVQzD0JQtU5Samaq7Au/SQ1UfsnVJNy0zNlZnZ76niwsXShaLTG5uqviPf6jCgP4yOzvnan/8fKIGRmxVUlqm7q1ZUdO6NZLZXMQ923uXS0amFHSH5Fu9aK8FAAAAlAGEdJQqPx7/URtOb5CT2Unj7xpfODOXFzPDYlHs118r5u13lHnxoiTJq2MH+Y8eLafAwDyPOZeQqn5zt+hcQprqB3nrg95N5exYgHXOb9aer7J+0osOAAAAFApCOkqNhLQETdsyTZI0uOFghfiE2Lagm5C8a5fOvPa6UnbvliQ516iugPHj5XH33dc8JiktQ4MiturY+STdVt5N8wbcKU+XYvinfemkdGKTJJNU/7Givx4AAABQBhDSUWrM2jFLZ5PP6nav2zWo4SBbl1MgGRcuKOaddxT7ZVbPtNnTU37Dh6n8k0/K5OR0zePSMy169ovt2nkqVuXdnTR/YHNV8nItnqL//DrrZ5WWkk/l4rkmAAAAUMoR0lEq/Hn+Ty3ct1CSNO7ucXJxcLFxRfljZGTo4qLFOjtzpixxcZIkn65dVenFkXL087v+sYahcct2a93+s3J1MuuT/neqmp9ncZSdZfflWd0Z6g4AAAAUGkI6SrxMS6Ze2/SaLIZFHat2VMuglrYuKV+Sfv9dZ157Xan7s9Yzd6lXVwHjJ8i9yR35Ov7fqw9oye+nZDZJs3o2UZPbyxdluTmdOyid2SWZHaV6XYvvugAAAEApR0hHibfkwBL9ef5PeTl5afSdo21dzg2lR8co5q23FPftt5IkBx8f+b0wQuUef1wmB4d8neOLzcc186dDkqQpjzZUu3r+RVZvnrJ70avdJ3n4Fu+1AQAAgFKMkI4S7WzSWc3cPlOS9FyT51TRraKNK7o2S3KyLi5YqHOzZ8uSlCSZTCrXo4f8Rjwvx/L57wX/8c8zmrB8jyTp+Qdqqmfz24uq5LwZxt+zujfsXrzXBgAAAEo5QjpKtOlbpyshPUENfBvo8VqPF+u1jfR0ZVy4qMwL55Vx4YIyL1xQxvnzyrxwURkXzivz/OV9Fy4o8/z5rGB+mVvjxvKfMEFuDeoX6Jrbjl/U8IV/yGJIT9wZrBHtahb2y7qxM7uk8wclR1epdsldhx4AAACwR4R0lFgbT2/UD8d+kNlk1oQWE+Rgzt9Q8WsxMjOVeenS5bB94XL4vhzCrwrcGRcvyhIbW+BrOFaqJL8XXpBPl0dkMhdsHfNDMQka9OlWpWZY9ECdSnq9awPbrAOfPdS95oOSq3fxXx8AAAAoxQjpKJFSMlL0+ubXJUk96/RUPd96+T7WMAxdWrRIiVu2KPP8haxe7wsXlXnxYtZQ7oIwm+VQoYIcK1SQg28FOZavIAdfXzn6VpBD+QpZPyv4yrFCeTn4+srs6XlTwTomLkX95m7RpaR0hQaX03tP3iFHh4KF/EJhsUh7Li+9xlB3AAAAoNAR0lEifbLnE52MPyk/Nz8NCx2W7+MsqamKenmc4lasuGYbh3LlsoJ2+fI5AreDbwU5VvCVQ4XycvT1lUOFCnLw8Slwj3hBxaekq9+8rTp9KVlVK3rok37N5O5so3+6JzdLcackZ6+snnQAAAAAhYqQjhLnWOwxfbL7E0nSmOZj5Omcv7XBMy5c0Klhw5W8fbvk6KiKQ4fKuVq1v3u7fSvIoVw5mRzt559FWoZF//h8myKj4lTR00WfDmguX08brgG/5/JQ97qdJCc329UBAAAAlFL2k0aAfDAMQ69vfl3plnS1qtxKD1bJX29u6pGjOvmPfyj9xAmZvbx028x35dGiRRFXe2ssFkP//HKnNhw6Lw9nB0UMuFO3+7rbrqDMDOnP5VnbDRjqDgAAABQFQjpKlO+Pfq/NUZvl4uCicc3H5ev+7sQtW3Rq+HOyxMbKqXJlBX/0oVyqVy+Gam/NtJX79N8df8nRbNIHvZuqQWUf2xZ09Bcp6ZzkVkGq1sa2tQAAAACllA1mngJuTmxqrN7c+qYkaWijoQr2Dr7hMZeWL9eJQYNliY2VW+PGClmyuEQE9Lm/HtWH/zsiSXqzeyO1ruVn44r099ro9btKDk42LQUAAAAorehJR4nx3h/v6ULKBVX1qar+9ftft61hGDr33iyde/99SZJXhw4K+tcbMru6FkOlt+a7XX/ptRV7JUljOtTRY01us3FFktJTpMhvs7YZ6g4AAAAUGUI6SoRdZ3dpyf4lkqQJd0+Qs4PzNdta0tKyZnD/7jtJku/QofIb8XyRz8JeGDYdPq+Ri3fKMKR+LaroH22q2bqkLIdWS6lxkndl6Xb7vpcfAAAAKMkI6bB7GZYMvfbbazJk6JHqj+jOgDuv3fbixawZ3LdtkxwdFTjpFZXrXjJ6fvedidPQz35XWqZFHRsEaGLn+je1pnqR2H15Vvf6j0ol4MsOAAAAoKQipMPuLdy3UPsu7JO3s7dGNh15zXapRy/P4H788gzu786QR8uWxVjpzfvrUrL6z92q+JQMNQ+poH+Hh8rBbCcBPTVeOrAya7thyfjCAwAAACipCOmwa2cSz2jWH7MkSS80fUG+br55tkvaulWnhg1XZvYM7h/OkUuNGsVZ6k2LTUpXv7lbdCYuRTUreerjvs3k6uRg67L+tv8HKSNFqlBdCgy1dTUAAABAqca4Vdi1N7e+qaSMJDX2a6zHaj6WZ5vYb77R8YGDlBkbK9dGjRSyeFGJCegp6ZkaMv93HYxJUIC3qz4d2Fw+7nY2c3r2UPcG3SR7GX4PAAAAlFL0pMNu/e/U/7T6+Go5mBw04e4JMptyfqdkGIbOzZqtc7NnS5K8HnxQQdP+JbObmy3KLbBMi6EXFu/QlmMX5OXqqIiBdyqonJ3VnnRBOrw2a5uh7gAAAECRI6TDLiVnJGvq5qmSpD71+qh2hdo5nrekpSlq/HjFfZO1LJjvkMHye+GFEjGDu5T1BcOr3/6pH/ackbODWR/1aaY6Ad62Liu3vf+VLBmSf0PJr/aN2wMAAAC4JYR02KWPdn2k0wmnFeARoKcbP53juYyLF3Vq+HAl/75NcnBQwCsTVb5HDxtVenPm/HJEn246LpNJeie8sVpUz/tee5vb81XWz4bdbFsHAAAAUEYQ0mF3Dl08pIg9EZKksc3Hyt3J3fpc2rFjOvnUP5R2/LjMnp6q/O4MebZqZaNKb87X209p2sp9kqQJD9dTp0ZBNq7oGuL+ko79mrXdgJAOAAAAFAdCOuyKYRh67bfXlGFkqG1wW91/+/3W55J+/12nnh2WNYN7UFDWDO41a9qw2oL734GzGv3lLknS0NbVNPCeqjau6Dr+XC7JkILvksrdbutqAAAAgDKBkA678t/D/9X2mO1yc3TT2OZjrftjv/1WUS+Pk5GeLteGDRX8/mw5+vnZsNKCuZSUpu0nLmr4gj+UYTHUJTRIL3WoY+uyrm9P9qzuTBgHAAAAFBdCOuzGpZRLevv3tyVJTzd+WkGeQVkzuL//vs69l7VWulf79gp6c5pdzuBuGIbOxKXoUExCjsfhswk6l5Bmbdeqhq+md28ss9mOlzO7cEQ6vU0ymaX6XW1dDQAAAFBmENJhN/69/d+6lHpJNcrVUO96vWVJS9OZCRMU+99vJEkVBg1UpRdftPkM7hmZFp24kJQVws9eDuIxCTp8NlEJqRnXPC7Ix1V3VfPVq13qy9nRzmehz54wrmprybOSbWsBAAAAyhBCOuzC9ujt+vrg15KkiS0myhyXqJPDhivp99+zZnCfOFHlw4t3BveU9EwdviKEZwfyY+eSlJZpyfMYB7NJVXzdVcPPUzUq/f2o7ucpD5cS9M9t9+WQzlB3AAAAoFiVoNSA0irdkq7XfntNktStZjfVT66gY317Ku3YMZk9PFT53XfleU/RzeAem5SuQ2fjcw5TP5ugUxeTZRh5H+PqZFb17CB+RSCv4uth/73kNxL9p3Q2UnJwlup2tnU1AAAAQJlCSIfNfbb3Mx26dEjlXcrrGdN9Ohb+hDIvXZJjUKCC58yRa61ahXKdxNQM7Y+O176oeO07E6cD0fE6FJOocwmp1zymvLtTjt7w7J+Vy7nZ9z3lt2L35QnjarSX3MrZtBQAAACgrCGko9gYhqGoxCgduHhA+y/s14GLB3Tg4gEdjzsuSXol8X5dGDo8awb3Bg0U/MH7NzWDu8Vi6OTFJEVGxSnyciDfdyZex88nXfOYIB9XVb9ieHp277ivp8tNv94SyTD+vh+9IWujAwAAAMWNkI4ikZieqIMXD1qDePZ2QnpC7saGoTF7ayjom8UyJHm1b6egN9/M1wzuscnp2n8mK4hnB/L9Z+KVlJaZZ3t/bxfVCfBWnUAv1fb3Kpn3ixel09ukS8clJw+pVgdbVwMAAACUOSQT3BKLYdHJ+JPWMH7gQtbPUwmncrU1WQz5pjiqoSqrtuGvqunlFJjqJp9D0Ur73wZJUoUBA1Rp1IsyOTjkODYj06Jj5xP/7hmPite+M/E6fSk5z7qcHc2q7e+lOgFeqhPorboBXqod4FX2esYLKnuoe+2OkrOHbWsBAAAAyiBCOvItNjU2R+/4gYsHdOjSIVmSklQ+QSqXKJVLMNQwQbo30VBgiqsCUl1VIdEs97g0OcYmSpZUSUcuP7KkSVkzuE8Yr/JPPKELiWnaF3VRkWfitS8qTpFn4nQgOkFpGXnPqF65nNvlMO6luoHeqhPgrRBfdzk6lPAJ3IqbJVP6M2uGfTVkVncAAADAFgjpyCXDkqFjF4/oyLE/dOr4Hp09dVDxUSdkvhCrcgmGyiVKjRIMtU6UyidIrunXOlPy5cffDLNZmd7llFmugtJ9yivNp4JSvcvpQLVQbUwK0r4paxQTn/dEbu7ODqod4KU6Ad6qG5j1s3aAl3zcnAr19ZdZx36VEqIl13JS9QdsXQ0AAABQJhHSyxiLxdCFpDSdiU1RTHyKzsSmKjouRefPx8pz0xLV3b1GlWJT5J0kBRtScD7Pm+zgrAuu3rro6qULLl666Oqtiy5euuDqdXlf1nOxLp6ymPLo4T4hSWetv1bxdc/qHb8cyOsGeiu4vHvpnVHdHuy5PNS93iOSo7NtawEAAADKKEJ6KWEYhuJTMxQT93fwjo5PUXRsiqLjUq3bMfGpyrD8vfi3X9JFdT66QY8c3yCvtJxd4pkmKdbNSZdc3XXBxUcXnCvqgku5y+Hb+++frl5Kc3KRo4NZzg5mOTqY5Gg2y8nBJEcHk5zMWfsCzWbd7miWk/nyfgezHM0mOTqYFeDtmjVU/fKEbkzkVswy0qS932RtN2CoOwAAAGArJKESICU9UzHZQTsu5XIveGqu7WvNaH41kwy1SDqlRw6vV8MjO2Q2su71ji4n7b6npmq2GaiKlevKqYKvyjk7ye9ymHZyMGcF6yuCd/Y2Pdwl3OGfpJRLkqe/FHKPrasBAAAAyixCup36bNMxff7bCUXHp+hS0jVv+s7F29VR/t6uCvBxVSUvV/l7u/y97SpV2PI/ZS5dpNTISOsxu6uYtPYuVz3Ua4KG1eoqk4nAXeZkD3Wv/6hkdrh+WwAAAABFhpBup+JSMrQ/Ot76u4ujWQE+rvL3cpW/j6v8vVzk733Vtrer3JxzB6z0mBhdWrRIFxctVtKFC5KkDCcH/Vzfoh+amuVdt4GmtZ6mKt5Viu31wY6kJUn7vs/aZqg7AAAAYFOEdDv1cMNANazsYw3m3m6OBe7hTt61Sxfmf6a4lSuljIysnZV89UMTaWntS0p0d9SABgM0LHSYnByYIb3MOvCDlJ4olasi3dbM1tUAAAAAZRoh3U6FVPRQSEWPAh9npKcrbtWPuvjZZ0reudO6361JE+25P0STnL5XqjLk51ZJ/753qu4OvLswy0ZJtPurrJ8Nuknc6gAAAADYFCG9lMi4cEGXFi/WxYWLlBETI0kyOTnJ+6GHZOrRWa9e/Fy/ns6avbttcFu92vJVlXctb8uSYQ+SL0mHVmdtN2SoOwAAAGBrhPQSLiUyUhc++1xx330nIy1NkuTgV1Hln3hC5cPD9VvqPo3/dZzOp5yXi4OLRjUbpfDa4UwOhyz7vpMy0yS/upJ/fVtXAwAAAJR5hPQSyMjIUPzan3Txs8+U9Pvv1v2uDRqoQt8+8u7QQekO0jvbZ+izvZ9JkmqUq6E3W7+pmuVr2qps2KPdl2d1b9jNtnUAAAAAkERIL1EyY2N16csvdeGLL5TxV1TWTgcHeYc9qPJ9+sgtNFQmk0lHYo9ozP/GaN+FfZKknnV6amTTkXJ1dLVh9bA7CTHS0V+ytus/ZttaAAAAAEgipJcIqYcO6cJnnyv2m29kJCdLkhzKlVO58HCV7/mEnAICJEmGYeirA19p2tZpSs5IVjmXcnqt1WtqG9zWhtXDbv25XDIsUlATybe6rasBAAAAIEK63TIsFiX88osufvaZEjdusu53qV07a0j7ww/L7Pp3z3hsaqwmb5qs1cezJgG7O/BuTblniiq5Vyr22lFC7Mke6s6EcQAAAIC9IKTbqahx4xW7bFnWL2azvB64X+X79JH7nXfmmvRt65mtGrt+rKKTouVoctRzTZ5Tv/r9ZDaZbVA5SoRLJ6STmyWZGOoOAAAA2BFCup3yCntQ8WvWqFz37irfq5ecb6ucq026JV1zds7Rx7s+liFDVbyraNq901S/IrN04wb2fJ31M+QeyTvQtrUAAAAAsCKk2ynP1q1V8+d1Mnt45Pn8yfiTemn9S9p1dpckqWuNrhrbfKzcndyLs0yUVNlD3RswqzsAAABgTwjpdspkNst0jYC+4sgKvfbba0pMT5SXk5cmtpioDlU7FHOFKLHOHpDO7JbMjlK9LrauBgAAAMAVCOklSGJ6oqb8NkXfHvlWknRHpTv0r3v/pSDPIBtXhhIluxe9+v2SewXb1gIAAAAgB0J6CbH77G6NWT9GJ+NPymwy6x+N/qEhjYbI0cxHiAIwDGl39lB3ZnUHAAAA7A0Jz85lWjI17895mv3HbGUYGQr0CNS01tN0R6U7bF0aSqKoHdKFw5Kjq1TnIVtXAwAAAOAqhHQ7Fp0YrZd/fVlbzmyRJIWFhGlii4nydva2cWUosbJ70Wt1kFy8bFsLAAAAgFwI6XbqpxM/aeLGiYpNjZWbo5vGNh+rrjW65lojHcg3i0X6c1nWdkOGugMAAAD2iJBup3ac3aHY1FjV862nafdOU4hPiK1LQkl38jcp7rTk4i3VaG/ragAAAADkgZBup4aHDpefm5+eqP2EnBycbF0OSoPsoe51OklOrratBQAAAECeCOl2ysnBSX3q9bF1GSgtMtOlvcuztht2s2kpAAAAAK7NbOsCABSDI79ISecl94pS1ba2rgYAAADANRDSgbJgz+Wh7vW7Sg4MoAEAAADsFSEdKO3SU6TI77K2GzCrOwAAAGDPCOlAaXfwRyktXvK+TQq+y9bVAAAAALgOm4f02bNnKyQkRK6urrrrrru0ZcuW67afMWOGateuLTc3NwUHB+uFF15QSkpKMVULlEDZQ90bPCaZbf5PHgAAAMB12PS/2BcvXqyRI0fqlVde0fbt29W4cWOFhYUpJiYmz/YLFizQSy+9pFdeeUWRkZH65JNPtHjxYr388svFXDlQQqTESQdWZW03YFZ3AAAAwN7ZNKS/8847GjJkiAYMGKB69eppzpw5cnd319y5c/Nsv3HjRrVq1UpPPvmkQkJC9OCDD6pnz5437H0Hyqz930sZKZJvDSmwsa2rAQAAAHADNgvpaWlp2rZtm9q1a/d3MWaz2rVrp02bNuV5TMuWLbVt2zZrKD9y5Ii+//57PfTQQ9e8TmpqquLi4nI8gDJj3xUTxplMtq0FAAAAwA3ZbC2mc+fOKTMzU/7+/jn2+/v7a9++fXke8+STT+rcuXO65557ZBiGMjIy9I9//OO6w93feOMNTZ48uVBrB0qMi8eyflZuatMyAAAAAORPiZpF6ueff9bUqVP1/vvva/v27fr666+1YsUKvfbaa9c8ZuzYsYqNjbU+Tp48WYwVAzYWfybrp1eAbesAAAAAkC8260mvWLGiHBwcFB0dnWN/dHS0AgLyDhQTJkxQnz59NHjwYElSw4YNlZiYqKFDh2rcuHEy5zFztYuLi1xcXAr/BQD2LjNDSjyXtU1IBwAAAEoEm/WkOzs7q2nTplq7dq11n8Vi0dq1a9WiRYs8j0lKSsoVxB0cHCRJhmEUXbFASZQYI8mQTA6Se0VbVwMAAAAgH2zWky5JI0eOVL9+/dSsWTM1b95cM2bMUGJiogYMGCBJ6tu3rypXrqw33nhDktS5c2e98847uuOOO3TXXXfp0KFDmjBhgjp37mwN6wAui4/K+unpz/roAAAAQAlh05AeHh6us2fPauLEiTpz5oxCQ0O1cuVK62RyJ06cyNFzPn78eJlMJo0fP16nT5+Wn5+fOnfurClTptjqJQD2K/7yrSRe/tdvBwAAAMBumIwyNk48Li5OPj4+io2Nlbe3t63LAYrO73Ol716QanWUnlxk62oAAACAMqsgOZQxsEBpxczuAAAAQIlDSAdKK0I6AAAAUOIQ0oHSipAOAAAAlDiEdKC0Srgc0j0J6QAAAEBJQUgHSitmdwcAAABKHEI6UBpZMqXEmKxtr0Db1gIAAAAg3wjpQGmUeFYyLJLJLHn42boaAAAAAPlESAdKo+xJ4zwqSWYH29YCAAAAIN8I6UBpZJ3ZnfvRAQAAgJKEkA6URszsDgAAAJRIhHSgNGKNdAAAAKBEIqQDpREhHQAAACiRCOlAaZRweY10T+5JBwAAAEoSQjpQGsVHZf1kjXQAAACgRCGkA6VR/OWedGZ3BwAAAEoUQjpQ2lgy/x7uTk86AAAAUKIQ0oHSJum8ZGRKMkkelWxdDQAAAIACIKQDpU32zO4eFSUHR9vWAgAAAKBACOlAacPyawAAAECJRUgHSpuEyyHdk5AOAAAAlDSEdKC0sc7sTkgHAAAAShpCOlDaWNdIJ6QDAAAAJQ0hHShtspdf82SNdAAAAKCkIaQDpY21J5010gEAAICShpAOlDbckw4AAACUWIR0oDSxWBjuDgAAAJRghHSgNEm+IFnSs7YJ6QAAAECJQ0gHSpP4y2uku/tKjs62rQUAAABAgRHSgdIkO6QzaRwAAABQIhHSgdIk4XJIZ6g7AAAAUCIR0oHSxNqTzszuAAAAQElESAdKE0I6AAAAUKIR0oHSxDrcnZAOAAAAlESEdKA0ib+8Rjo96QAAAECJREgHShOGuwMAAAAlGiEdKC0Mg9ndAQAAgBKOkA6UFskXpcy0rG160gEAAIASiZAOlBbZQ93dykuOLratBQAAAMBNIaQDpQUzuwMAAAAlHiEdKC2YNA4AAAAo8QjpQGlBSAcAAABKPEI6UFoQ0gEAAIASj5AOlBbckw4AAACUeIR0oLSIj8766cUa6QAAAEBJRUgHSov4qKyfXoG2rQMAAADATSOkA6WBYUgJl3vSPelJBwAAAEoqQjpQGqTEShkpWdtMHAcAAACUWIR0oDTIntnd1UdycrNtLQAAAABuGiEdKA2Y2R0AAAAoFQjpQGnAGukAAABAqUBIB0oDQjoAAABQKhDSgdIge2Z3QjoAAABQohHSgdIge4107kkHAAAASjRCOlAaxGf3pLNGOgAAAFCSEdKB0iC7J90r0LZ1AAAAALglhHSgpDOMv+9J96QnHQAAACjJCOlASZcaL6UnZW0zcRwAAABQohHSgZIue/k1F2/J2cO2tQAAAAC4JYR0oKRLuBzSGeoOAAAAlHiEdKCki2eNdAAAAKC0IKQDJZ11ZndCOgAAAFDSEdKBko6Z3QEAAIBSg5AOlHSskQ4AAACUGoR0oKTjnnQAAACg1CCkAyVd9uzuhHQAAACgxCOkAyVd9jrpnoR0AAAAoKQjpAMlWWq8lJaQte3FxHEAAABASUdIB0qy7PvRnT0lFy/b1gIAAADglhHSgZIs+350ll8DAAAASgVCOlCSxTNpHAAAAFCaENKBkoyQDgAAAJQqhHSgJEtgZncAAACgNCGkAyVZ9sRx9KQDAAAApYLNQ/rs2bMVEhIiV1dX3XXXXdqyZct121+6dEnPPvusAgMD5eLiolq1aun7778vpmoBOxMflfWTkA4AAACUCo62vPjixYs1cuRIzZkzR3fddZdmzJihsLAw7d+/X5UqVcrVPi0tTe3bt1elSpX05ZdfqnLlyjp+/LjKlStX/MUD9iDhck86s7sDAAAApYJNQ/o777yjIUOGaMCAAZKkOXPmaMWKFZo7d65eeumlXO3nzp2rCxcuaOPGjXJycpIkhYSEFGfJgH2xThwXaNs6AAAAABQKmw13T0tL07Zt29SuXbu/izGb1a5dO23atCnPY7755hu1aNFCzz77rPz9/dWgQQNNnTpVmZmZ17xOamqq4uLicjyAUiEtSUq9/PfsRU86AAAAUBrYLKSfO3dOmZmZ8vfPGS78/f115syZPI85cuSIvvzyS2VmZur777/XhAkT9Pbbb+v111+/5nXeeOMN+fj4WB/BwcGF+joAm8me2d3JXXLxtm0tAAAAAAqFzSeOKwiLxaJKlSrpo48+UtOmTRUeHq5x48Zpzpw51zxm7Nixio2NtT5OnjxZjBUDRSh7qLunv2Qy2bYWAAAAAIXCZvekV6xYUQ4ODoqOjs6xPzo6WgEBec9UHRgYKCcnJzk4OFj31a1bV2fOnFFaWpqcnZ1zHePi4iIXF5fCLR6wB9b70ZnZHQAAACgtbNaT7uzsrKZNm2rt2rXWfRaLRWvXrlWLFi3yPKZVq1Y6dOiQLBaLdd+BAwcUGBiYZ0AHSjVCOgAAAFDq2HS4+8iRI/Xxxx/r008/VWRkpJ5++mklJiZaZ3vv27evxo4da23/9NNP68KFC3r++ed14MABrVixQlOnTtWzzz5rq5cA2E72PemehHQAAACgtLDpEmzh4eE6e/asJk6cqDNnzig0NFQrV660TiZ34sQJmc1/f48QHBysVatW6YUXXlCjRo1UuXJlPf/88xozZoytXgJgO/GXbxVhZncAAACg1DAZhmHYuojiFBcXJx8fH8XGxsrbmxmxUYJ9+oh09Bfp0Q+lxk/YuhoAAAAA11CQHFqiZncHcIWEyz3pnvSkAwAAAKUFIR0oqawTxwXatg4AAAAAhYaQDpRE6clSyqWsbe5JBwAAAEoNQjpQEmUPdXdwkVzL2bQUAAAAAIWHkA6URFeukW4y2bYWAAAAAIWGkA6URFeGdAAAAAClBiEdKImyh7sT0gEAAIBShZAOlETxUVk/PQnpAAAAQGlCSAdKovjsnnRmdgcAAABKE0I6UBIlsEY6AAAAUBoR0oGSKHviOE960gEAAIDShJAOlETM7g4AAACUSoR0oKTJSJWSL2RtM9wdAAAAKFUI6UBJk738moOz5FbetrUAAAAAKFQ3FdK3b9+u3bt3W3//73//q65du+rll19WWlpaoRUHIA/ZM7t7Bkgmk21rAQAAAFCobiqkP/XUUzpw4IAk6ciRI3riiSfk7u6upUuXavTo0YVaIICrZK+RzvJrAAAAQKlzUyH9wIEDCg0NlSQtXbpUrVu31oIFCxQREaGvvvqqMOsDcLXs4e7M7A4AAACUOjcV0g3DkMVikSStWbNGDz30kCQpODhY586dK7zqAORm7Uln0jgAAACgtLmpkN6sWTO9/vrr+uyzz/TLL7/o4YcfliQdPXpU/v707gFFKvuedIa7AwAAAKXOTYX0GTNmaPv27Ro2bJjGjRunGjVqSJK+/PJLtWzZslALBHCVhOw10ulJBwAAAEobx5s5qFGjRjlmd882ffp0OTg43HJRAK4j/nJI9wywbR0AAAAACt1N9aRv3bpVmzdvzrV/586d2rlz5y0XBeA6skM6w90BAACAUuemQvqzzz6rkydP5tp/+vRpPfvss7dcFIBryEyXki5PzshwdwAAAKDUuamQvnfvXjVp0iTX/jvuuEN79+695aIAXEP28mtmR8mtgm1rAQAAAFDobiqku7i4KDo6Otf+qKgoOTre1G3uAPIj/oo10s039c8XAAAAgB27qf/Kf/DBBzV27FjFxsZa9126dEkvv/yy2rdvX2jFAbiKdY10Jo0DAAAASqOb6vZ+66231Lp1a1WpUkV33HGHJGnHjh3y9/fXZ599VqgFArhCAjO7AwAAAKXZTYX0ypUra9euXfriiy+0c+dOubm5acCAAerZs6ecnJwKu0YA2bKHu9OTDgAAAJRKN30DuYeHh4YOHVqYtQC4EYa7AwAAAKVavkP6N998o44dO8rJyUnffPPNdds+8sgjt1wYgDwkXDFxHAAAAIBSJ98hvWvXrjpz5owqVaqkrl27XrOdyWRSZmZmYdQG4GrWnnTWSAcAAABKo3yHdIvFkuc2gGJkvSednnQAAACgNCrwEmzp6el64IEHdPDgwaKoB8C1ZGZIiWeztulJBwAAAEqlAod0Jycn7dq1qyhqAXA9iTGSDMnkILlXtHU1AAAAAIpAgUO6JPXu3VuffPJJYdcC4Hris9dIrySZb+qfLgAAAAA7d1NLsGVkZGju3Llas2aNmjZtKg8PjxzPv/POO4VSHIArJLBGOgAAAFDa3VRI37Nnj5o0aSJJOnDgQKEWBOAasmd29ySkAwAAAKXVTYX0devWFXYdAG6Emd0BAACAUu+mbmwdOHCg4uPjc+1PTEzUwIEDb7koAHlgjXQAAACg1LupkP7pp58qOTk51/7k5GTNnz//losCkIfse9I96UkHAAAASqsCDXePi4uTYRgyDEPx8fFydXW1PpeZmanvv/9elSpVKvQiAejv2d3pSQcAAABKrQKF9HLlyslkMslkMqlWrVq5njeZTJo8eXKhFQfgCtaQTk86AAAAUFoVKKSvW7dOhmHo/vvv11dffaUKFSpYn3N2dlaVKlUUFBRU6EUCZZ4lU0qMydpmdncAAACg1CpQSG/Tpo0k6ejRo7r99ttlMpmKpCgAV0k8KxkWyWSWPPxsXQ0AAACAInJTE8dVqVJFv/76q3r37q2WLVvq9OnTkqTPPvtMv/76a6EWCEB/D3X38JMcbmrlRAAAAAAlwE2F9K+++kphYWFyc3PT9u3blZqaKkmKjY3V1KlTC7VAAPp7ZncvhroDAAAApdlNhfTXX39dc+bM0ccffywnJyfr/latWmn79u2FVhyAy7LXSOd+dAAAAKBUu6mQvn//frVu3TrXfh8fH126dOlWawJwtfjsnnRmdgcAAABKs5sK6QEBATp06FCu/b/++quqVat2y0UBuEoCa6QDAAAAZcFNhfQhQ4bo+eef1+bNm2UymfTXX3/piy++0KhRo/T0008Xdo0AsieO86QnHQAAACjNbmqa6JdeekkWi0UPPPCAkpKS1Lp1a7m4uGjUqFEaPnx4YdcIIDukM3EcAAAAUKrdVEg3mUwaN26c/vnPf+rQoUNKSEhQvXr15OnpWdj1AZAI6QAAAEAZUaCQPnDgwHy1mzt37k0VAyAPFouUGJO1zezuAAAAQKlWoJAeERGhKlWq6I477pBhGEVVE4ArJZ2XLBmSTJJnJVtXAwAAAKAIFSikP/3001q4cKGOHj2qAQMGqHfv3qpQoUJR1QZA+nuNdI+KkoOTbWsBAAAAUKQKNLv77NmzFRUVpdGjR+vbb79VcHCwevTooVWrVtGzDhSVhMtrpDPUHQAAACj1CrwEm4uLi3r27KnVq1dr7969ql+/vp555hmFhIQoISGhKGoEyrbsnnQmjQMAAABKvZtaJ916sNksk8kkwzCUmZlZWDUBuFL85Z50L9ZIBwAAAEq7Aof01NRULVy4UO3bt1etWrW0e/duzZo1SydOnGAJNqAoJGQvvxZo2zoAAAAAFLkCTRz3zDPPaNGiRQoODtbAgQO1cOFCVaxYsahqAyD9vUa6Jz3pAAAAQGlXoJA+Z84c3X777apWrZp++eUX/fLLL3m2+/rrrwulOAD6O6RzTzoAAABQ6hUopPft21cmk6moagGQl+zZ3RnuDgAAAJR6BQrpERERRVQGgDwZBsPdAQAAgDLklmZ3B1DEki5IlvSsbUI6AAAAUOoR0gF7lr1Guruv5Ohs21oAAAAAFDlCOmDPspdf82TSOAAAAKAsIKQD9iw+e9I4QjoAAABQFhDSAXuWPdydkA4AAACUCYR0wJ5lL7/GpHEAAABAmUBIB+yZtSedNdIBAACAsoCQDtgz6z3p9KQDAAAAZQEhHbBn2bO705MOAAAAlAmEdMBeGYYUn70EGz3pAAAAQFlgFyF99uzZCgkJkaurq+666y5t2bIlX8ctWrRIJpNJXbt2LdoCAVtIvihlpmVtE9IBAACAMsHmIX3x4sUaOXKkXnnlFW3fvl2NGzdWWFiYYmJirnvcsWPHNGrUKN17773FVClQzLJndncrLzm52rYWAAAAAMXC5iH9nXfe0ZAhQzRgwADVq1dPc+bMkbu7u+bOnXvNYzIzM9WrVy9NnjxZ1apVK8ZqgWKUPbO7J2ukAwAAAGWFTUN6Wlqatm3bpnbt2ln3mc1mtWvXTps2bbrmca+++qoqVaqkQYMG3fAaqampiouLy/EASgRmdgcAAADKHJuG9HPnzikzM1P+/jlDiL+/v86cOZPnMb/++qs++eQTffzxx/m6xhtvvCEfHx/rIzg4+JbrBooFa6QDAAAAZY7Nh7sXRHx8vPr06aOPP/5YFStWzNcxY8eOVWxsrPVx8uTJIq4SKCTZ96QzaRwAAABQZjja8uIVK1aUg4ODoqOjc+yPjo5WQEDu+3APHz6sY8eOqXPnztZ9FotFkuTo6Kj9+/erevXqOY5xcXGRi4tLEVQPFLF41kgHAAAAyhqb9qQ7OzuradOmWrt2rXWfxWLR2rVr1aJFi1zt69Spo927d2vHjh3WxyOPPKL77rtPO3bsYCg7ShdrSKcnHQAAACgrbNqTLkkjR45Uv3791KxZMzVv3lwzZsxQYmKiBgwYIEnq27evKleurDfeeEOurq5q0KBBjuPLlSsnSbn2AyVewuWQzuzuAAAAQJlh85AeHh6us2fPauLEiTpz5oxCQ0O1cuVK62RyJ06ckNlcom6dB26dYVzRk05IBwAAAMoKk2EYhq2LKE5xcXHy8fFRbGysvL29bV0OkLfkS9K0Klnb485ITm42LQcAAADAzStIDqWLGrBH2TO7u/oQ0AEAAIAyhJAO2KPsNdK5Hx0AAAAoUwjpgD2Kv9yTzszuAAAAQJlCSAfsUQJrpAMAAABlESEdsEfZM7t70pMOAAAAlCWEdMAesfwaAAAAUCYR0gF7REgHAAAAyiRCOmCPsu9JZ3Z3AAAAoEwhpAP2xjCumN2dkA4AAACUJYR0wN6kxkvpiVnbhHQAAACgTCGkA/Ym4XIvurOX5Oxh21oAAAAAFCtCOmBv4qOyftKLDgAAAJQ5hHTA3nA/OgAAAFBmEdIBe5PA8msAAABAWUVIB+xN9hrpnv62rQMAAABAsSOkA/Ymnp50AAAAoKwipAP2Jnt2d69A29YBAAAAoNgR0gF7kz27O8PdAQAAgDKHkA7YG2Z3BwAAAMosQjpgT1ITpLT4rG1COgAAAFDmENIBe5J9P7qTh+TiZdtaAAAAABQ7QjpgT5jZHQAAACjTCOmAPcmeNI6QDgAAAJRJhHTAnmQPd2dmdwAAAKBMIqQD9sQ63J010gEAAICyiJAO2BNrSKcnHQAAACiLCOmAPUmgJx0AAAAoywjpgD3J7knnnnQAAACgTCKkA/Yk/vLEcczuDgAAAJRJhHTAXqQlSamxWduEdAAAAKBMIqQD9iL7fnRHN8nF27a1AAAAALAJQjpgL6xD3f0lk8m2tQAAAACwCUI6YC/io7J+MrM7AAAAUGYR0gF7kXC5J52Z3QEAAIAyi5AO2It41kgHAAAAyjpCOmAvrCGdnnQAAACgrCKkA/Yie3Z3T5ZfAwAAAMoqQjpgL6yzuxPSAQAAgLKKkA7YC+vs7oR0AAAAoKwipAP2ID1FSrmUtU1IBwAAAMosQjpgD7LvR3dwkVzL2bQUAAAAALZDSAfsgfV+dH/JZLJtLQAAAABshpAO2IME1kgHAAAAQEgH7EP2GumerJEOAAAAlGWEdMAeZId0Jo0DAAAAyjRCOmAPCOkAAAAAREgH7EP2PemehHQAAACgLCOkA/bAOrs7IR0AAAAoywjpgD2Ij8r6SUgHAAAAyjRCOmBrGWlS8oWsbYa7AwAAAGUaIR2wtYTLQ93NTpJ7BdvWAgAAAMCmCOmArV05s7vJZNtaAAAAANgUIR2wtQSWXwMAAACQhZAO2Fp2T7qnv23rAAAAAGBzhHTA1uLpSQcAAACQhZAO2BrD3QEAAABcRkgHbM063J2QDgAAAJR1hHTA1uIvL8FGTzoAAABQ5hHSAVuLj8r6SUgHAAAAyjxCOmBLmelS0rmsbYa7AwAAAGUeIR2wpYSYrJ9mR8nd17a1AAAAALA5QjpgS1eukW7mnyMAAABQ1pEKAFtKuCKkAwAAACjzCOmALWX3pHsF2rYOAAAAAHaBkA7YkjWk05MOAAAAgJAO2FYCPekAAAAA/kZIB2wpnnvSAQAAAPyNkA7YknW4O2ukAwAAACCkA7aVEJ31k5AOAAAAQIR0wHYyM6SEmKxtT0I6AAAAAEI6YDuJZyUZkskseVS0dTUAAAAA7AAhHbCV+Kisn57+ktnBtrUAAAAAsAuEdMBWsu9HZ2Z3AAAAAJfZRUifPXu2QkJC5Orqqrvuuktbtmy5ZtuPP/5Y9957r8qXL6/y5curXbt2120P2K141kgHAAAAkJPNQ/rixYs1cuRIvfLKK9q+fbsaN26ssLAwxcTE5Nn+559/Vs+ePbVu3Tpt2rRJwcHBevDBB3X69Olirhy4RdaQTk86AAAAgCw2D+nvvPOOhgwZogEDBqhevXqaM2eO3N3dNXfu3Dzbf/HFF3rmmWcUGhqqOnXq6D//+Y8sFovWrl1bzJUDtyjhckhnZncAAAAAl9k0pKelpWnbtm1q166ddZ/ZbFa7du20adOmfJ0jKSlJ6enpqlChQp7Pp6amKi4uLscDsAvxrJEOAAAAICebhvRz584pMzNT/v45h/v6+/vrzJkz+TrHmDFjFBQUlCPoX+mNN96Qj4+P9REcHHzLdQOFInt2d0I6AAAAgMtsPtz9VvzrX//SokWLtGzZMrm6uubZZuzYsYqNjbU+Tp48WcxVAteQQE86AAAAgJwcbXnxihUrysHBQdHR0Tn2R0dHKyDg+sHlrbfe0r/+9S+tWbNGjRo1umY7FxcXubi4FEq9QKGxZF6xBBshHQAAAEAWm/akOzs7q2nTpjkmfcueBK5FixbXPO7NN9/Ua6+9ppUrV6pZs2bFUSpQuBLPSYZFkkny8LN1NQAAAADshE170iVp5MiR6tevn5o1a6bmzZtrxowZSkxM1IABAyRJffv2VeXKlfXGG29IkqZNm6aJEydqwYIFCgkJsd677unpKU9PT5u9DqBArDO7V5IcbP7PEAAAAICdsHk6CA8P19mzZzVx4kSdOXNGoaGhWrlypXUyuRMnTshs/rvD/4MPPlBaWpq6d++e4zyvvPKKJk2aVJylAzcve410T9ZIBwAAAPA3k2EYhq2LKE5xcXHy8fFRbGysvL29bV0Oyqptn0rfPifVfFDqtdTW1QAAAAAoQgXJoSV6dnegxMruSWdmdwAAAABXIKQDtmC9J52QDgAAAOBvNr8nHSiT4lkjHQAAlD0Wi0VpaWm2LgMoEs7OzjnmU7tZhHTAFuKjsn4S0gEAQBmRlpamo0ePymKx2LoUoEiYzWZVrVpVzs7Ot3QeQjpgCwmXe9IZ7g4AAMoAwzAUFRUlBwcHBQcHF0pvI2BPLBaL/vrrL0VFRen222+XyWS66XMR0oHiZrH8HdLpSQcAAGVARkaGkpKSFBQUJHd3d1uXAxQJPz8//fXXX8rIyJCTk9NNn4evsIDilnResmRIMkmelWxdDQAAQJHLzMyUpFseBgzYs+y/7+y/95tFSAeKW/bM7h4VJYeb/4YNAACgpLmVIcCAvSusv29COlDc4ll+DQAAAEDeCOlAccsO6V7+tq0DAAAARa5t27YaMWKE9feQkBDNmDHjuseYTCYtX778lq9dWOdB8SKkA8Ute7g7k8YBAADYrc6dO6tDhw55Prd+/XqZTCbt2rWrwOfdunWrhg4deqvl5TBp0iSFhobm2h8VFaWOHTsW6rWuJTk5WRUqVFDFihWVmppaLNcsrQjpQHFjuDsAAIDdGzRokFavXq1Tp07lem7evHlq1qyZGjVqVODz+vn5FdsM9wEBAXJxcSmWa3311VeqX7++6tSpY/Pee8MwlJGRYdMabgUhHShu8fSkAwAA2LtOnTrJz89PEREROfYnJCRo6dKlGjRokM6fP6+ePXuqcuXKcnd3V8OGDbVw4cLrnvfq4e4HDx5U69at5erqqnr16mn16tW5jhkzZoxq1aold3d3VatWTRMmTFB6erokKSIiQpMnT9bOnTtlMplkMpmsNV893H337t26//775ebmJl9fXw0dOlQJCQnW5/v376+uXbvqrbfeUmBgoHx9ffXss89ar3U9n3zyiXr37q3evXvrk08+yfX8n3/+qU6dOsnb21teXl669957dfjwYevzc+fOVf369eXi4qLAwEANGzZMknTs2DGZTCbt2LHD2vbSpUsymUz6+eefJUk///yzTCaTfvjhBzVt2lQuLi769ddfdfjwYXXp0kX+/v7y9PTUnXfeqTVr1uSoKzU1VWPGjFFwcLBcXFxUo0YNffLJJzIMQzVq1NBbb72Vo/2OHTtkMpl06NChG74nN4t10oHiRkgHAABlnGEYSk6/tWWqbpabk0O+ZuF2dHRU3759FRERoXHjxlmPWbp0qTIzM9WzZ08lJCSoadOmGjNmjLy9vbVixQr16dNH1atXV/PmzW94DYvFoscee0z+/v7avHmzYmNjc9y/ns3Ly0sREREKCgrS7t27NWTIEHl5eWn06NEKDw/Xnj17tHLlSmsA9fHxyXWOxMREhYWFqUWLFtq6datiYmI0ePBgDRs2LMcXEevWrVNgYKDWrVunQ4cOKTw8XKGhoRoyZMg1X8fhw4e1adMmff311zIMQy+88IKOHz+uKlWqSJJOnz6t1q1bq23btvrpp5/k7e2tDRs2WHu7P/jgA40cOVL/+te/1LFjR8XGxmrDhg03fP+u9tJLL+mtt95StWrVVL58eZ08eVIPPfSQpkyZIhcXF82fP1+dO3fW/v37dfvtt0uS+vbtq02bNmnmzJlq3Lixjh49qnPnzslkMmngwIGaN2+eRo0aZb3GvHnz1Lp1a9WoUaPA9eUXIR0obgnRWT8Z7g4AAMqo5PRM1Zu4yibX3vtqmNyd8xeDBg4cqOnTp+uXX35R27ZtJWWFtG7dusnHx0c+Pj45Atzw4cO1atUqLVmyJF8hfc2aNdq3b59WrVqloKAgSdLUqVNz3Uc+fvx463ZISIhGjRqlRYsWafTo0XJzc5Onp6ccHR0VEHDt/75csGCBUlJSNH/+fHl4eEiSZs2apc6dO2vatGny98+a1Lh8+fKaNWuWHBwcVKdOHT388MNau3btdUP63Llz1bFjR5UvX16SFBYWpnnz5mnSpEmSpNmzZ8vHx0eLFi2Sk1PWEsS1atWyHv/666/rxRdf1PPPP2/dd+edd97w/bvaq6++qvbt21t/r1Chgho3bmz9/bXXXtOyZcv0zTffaNiwYTpw4ICWLFmi1atXq127dpKkatWqWdv3799fEydO1JYtW9S8eXOlp6drwYIFuXrXCxvD3YHiZBj0pAMAAJQQderUUcuWLTV37lxJ0qFDh7R+/XoNGjRIkpSZmanXXntNDRs2VIUKFeTp6alVq1bpxIkT+Tp/ZGSkgoODrQFdklq0aJGr3eLFi9WqVSsFBATI09NT48ePz/c1rrxW48aNrQFdklq1aiWLxaL9+/db99WvX18ODg7W3wMDAxUTE3PN82ZmZurTTz9V7969rft69+6tiIgIWSwWSVlDxO+9915rQL9STEyM/vrrLz3wwAMFej15adasWY7fExISNGrUKNWtW1flypWTp6enIiMjre/djh075ODgoDZt2uR5vqCgID388MPWz//bb79VamqqHn/88Vuu9XroSQeKU9IFyXL5nh5PlmADAABlk5uTg/a+GmazaxfEoEGDNHz4cM2ePVvz5s1T9erVraFu+vTpevfddzVjxgw1bNhQHh4eGjFihNLS0gqt3k2bNqlXr16aPHmywsLCrD3Sb7/9dqFd40pXB2mTyWQN23lZtWqVTp8+rfDw8Bz7MzMztXbtWrVv315ubm7XPP56z0mS2ZzVr2wYhnXfte6Rv/ILCEkaNWqUVq9erbfeeks1atSQm5ubunfvbv18bnRtSRo8eLD69Omjf//735o3b57Cw8OLfOI/etKB4pS9/JpbBcnR2ba1AAAA2IjJZJK7s6NNHvm5H/1KPXr0kNls1oIFCzR//nwNHDjQeo4NGzaoS5cu6t27txo3bqxq1arpwIED+T533bp1dfLkSUVFRVn3/fbbbznabNy4UVWqVNG4cePUrFkz1axZU8ePH8/RxtnZWZmZ17/Hv27dutq5c6cSExOt+zZs2CCz2azatWvnu+arffLJJ3riiSe0Y8eOHI8nnnjCOoFco0aNtH79+jzDtZeXl0JCQrR27do8z+/n5ydJOd6jKyeRu54NGzaof//+evTRR9WwYUMFBATo2LFj1ucbNmwoi8WiX3755ZrneOihh+Th4aEPPvhAK1eu1MCBA/N17VtBSAeKk3Woe6Bt6wAAAEC+eHp6Kjw8XGPHjlVUVJT69+9vfa5mzZpavXq1Nm7cqMjISD311FOKjo7O97nbtWunWrVqqV+/ftq5c6fWr1+vcePG5WhTs2ZNnThxQosWLdLhw4c1c+ZMLVu2LEebkJAQHT16VDt27NC5c+fyXKe8V69ecnV1Vb9+/bRnzx6tW7dOw4cPV58+faz3oxfU2bNn9e2336pfv35q0KBBjkffvn21fPlyXbhwQcOGDVNcXJyeeOIJ/f777zp48KA+++wz6zD7SZMm6e2339bMmTN18OBBbd++Xe+9956krN7uu+++W//6178UGRmpX375Jcc9+tdTs2ZNff3119qxY4d27typJ598MseogJCQEPXr108DBw7U8uXLdfToUf38889asmSJtY2Dg4P69++vsWPHqmbNmnnejlDYCOlAcbKGdIa6AwAAlBSDBg3SxYsXFRYWluP+8fHjx6tJkyYKCwtT27ZtFRAQoK5du+b7vGazWcuWLVNycrKaN2+uwYMHa8qUKTnaPPLII3rhhRc0bNgwhYaGauPGjZowYUKONt26dVOHDh103333yc/PL89l4Nzd3bVq1SpduHBBd955p7p3764HHnhAs2bNKtibcYXsSejyup/8gQcekJubmz7//HP5+vrqp59+UkJCgtq0aaOmTZvq448/tg6t79evn2bMmKH3339f9evXV6dOnXTw4EHruebOnauMjAw1bdpUI0aM0Ouvv56v+t555x2VL19eLVu2VOfOnRUWFqYmTZrkaPPBBx+oe/fueuaZZ1SnTh0NGTIkx2gDKevzT0tL04ABAwr6Ft0Uk3Hl4P4yIC4uTj4+PoqNjZW3t7ety0FZs/5tae2rUmgvqev7tq4GAACgWKSkpOjo0aOqWrWqXF1dbV0OUCDr16/XAw88oJMnT1531MH1/s4LkkOZOA4oTtk96UwaBwAAANi11NRUnT17VpMmTdLjjz9+07cFFBTD3YHixPJrAAAAQImwcOFCValSRZcuXdKbb75ZbNclpAPFKeHyRCKEdAAAAMCu9e/fX5mZmdq2bZsqV65cbNclpAPFKf7y0hGehHQAAAAAuRHSgeJiGFJ8dk8696QDAAAAyI2QDhSX5ItS5uU1K+lJBwAAAJAHQjpQXLLvR3ctJzmx9AgAAACA3AjpQHGxzuweaNs6AAAAANgtQjpQXKwhnfvRAQAAAOSNkA4Ul4TLIZ370QEAAMqMtm3basSIEdbfQ0JCNGPGjOseYzKZtHz58lu+dmGdxx5d/b4WVlt74GjrAoAyI5410gEAAEqKzp07Kz09XStXrsz13Pr169W6dWvt3LlTjRo1KtB5t27dKg8Pj8IqU5I0adIkLV++XDt27MixPyoqSuXLly/Ua10tIiJCAwYMkJT1pUBQUJDat2+v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caOqVKmicePGqVmzZqpZs6aOHz+eo42zs3Oe92pffa2dO3cqMTHRum/Dhg0ym82qXbt2vmvOi9lsVo0aNVStWrV8hes77rhDmZmZiomJUY0aNXI8sofsN2rUSGvXrs13DY6OjmrXrp3efPNN7dq1S8eOHdNPP/2Uq13dunWVkZGhzZs3W/edP39e+/fvV7169fJ9vaJESAeKytb/SEfWSY5u0mMfSw4lZ21GAAAAZPH09FR4eLjGjh2rqKgo9e/f3/pczZo1tXr1am3cuFGRkZF66qmnFB0dne9zt2vXTrVq1VK/fv20c+dOrV+/XuPGjcvRpmbNmjpx4oQWLVqkw4cPa+bMmVq2bFmONiEhITp69Kh27Nihc+fOKTU1Nde1evXqJVdXV/Xr10979uzRunXrNHz4cPXp08c61L241KpVS7169VLfvn319ddf6+jRo9qyZYveeOMNrVixQpI0duxYbd26Vc8884x27dqlffv26YMPPtC5c+dyne+7777TzJkztWPHDh0/flzz58+XxWLJ88uHmjVrqkuXLhoyZIh+/fVX7dy5U71791blypXVpUuXIn/t+UFIB4rC2QPS6olZ2+1flSrWtG09AAAAuGmDBg3SxYsXFRYWluP+8fHjx6tJkyYKCwtT27ZtFRAQoK5du+b7vGazWcuWLVNycrKaN2+uwYMHa8qUKTnaPPLII3rhhRc0bNgwhYaGauPGjZowYUKONt26dVOHDh103333yc/PL89l4Nzd3bVq1SpduHBBd955p7p3764HHnhAs2bNKtibUUjmzZunvn376sUXX1Tt2rXVtWtXbd26VbfffrukrCD/448/aufOnWrevLlatGih//73v3J0zH3Hdrly5fT111/r/vvvV926dTVnzhwtXLjwmhPNzZs3T02bNlWnTp3UokULGYah77//PtcQd1sxGcU1sN5OxMXFycfHR7GxsQWebAHIl8x06ZP20l9/SNXvl3p9JZn5PgwAAJRdKSkpOnr0qKpWrSpXV1dblwMUiev9nRckh5IcgML2v+lZAd21nNRlNgEdAAAAQL6RHoDCdOp36X9vZW13ekfyDrp+ewAAAAC4AiEdKCxpidLXQyUjU2r4uNSgm60rAgAAAFDCENKBwvLjBOnCYcm7svTQdFtXAwAAAKAEIqQDheHgaun3T7K2u74vuZW3bT0AAAAA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\n"
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 600x400 with 1 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {}
        }
      ],
      "source": [
        "\n",
        "# График метрик\n",
        "plt.figure(figsize=(12, 6))\n",
        "plt.plot(epochs, val_acc_log, label='Validation Accuracy')\n",
        "plt.plot(epochs, val_prec_log, label='Validation Precision')\n",
        "plt.plot(epochs, val_recall_log, label='Validation Recall')\n",
        "plt.plot(epochs, val_f1_log, label='Validation F1 Score')\n",
        "\n",
        "plt.xlabel('Epochs')\n",
        "plt.ylabel('Metrics')\n",
        "plt.title('Classification Metrics over Epochs')\n",
        "plt.legend()\n",
        "plt.show()\n",
        "\n",
        "# График функции потерь\n",
        "plt.figure(figsize=(6, 4))\n",
        "plt.plot(epochs, val_loss_log, label='Validation Loss')\n",
        "\n",
        "plt.xlabel('Epochs')\n",
        "plt.ylabel('Loss')\n",
        "plt.title('Validation Loss over Epochs')\n",
        "plt.legend()\n",
        "plt.show()"
      ]
    }
  ],
  "metadata": {
    "kaggle": {
      "accelerator": "none",
      "dataSources": [
        {
          "datasetId": 729820,
          "sourceId": 1267148,
          "sourceType": "datasetVersion"
        }
      ],
      "dockerImageVersionId": 30627,
      "isGpuEnabled": false,
      "isInternetEnabled": true,
      "language": "python",
      "sourceType": "notebook"
    },
    "kernelspec": {
      "display_name": "Python 3",
      "name": "python3"
    },
    "language_info": {
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "file_extension": ".py",
      "mimetype": "text/x-python",
      "name": "python",
      "nbconvert_exporter": "python",
      "pygments_lexer": "ipython3",
      "version": "3.10.12"
    },
    "papermill": {
      "default_parameters": {},
      "duration": 27715.672777,
      "end_time": "2024-01-17T14:31:27.185223",
      "environment_variables": {},
      "exception": null,
      "input_path": "__notebook__.ipynb",
      "output_path": "__notebook__.ipynb",
      "parameters": {},
      "start_time": "2024-01-17T06:49:31.512446",
      "version": "2.4.0"
    },
    "colab": {
      "provenance": [],
      "gpuType": "T4",
      "include_colab_link": true
    },
    "accelerator": "GPU"
  },
  "nbformat": 4,
  "nbformat_minor": 5
}